mirror of
https://github.com/m1k1o/neko.git
synced 2026-11-03 00:11:48 -06:00
feat: remove default configuration to prevend accidental override.
we used to have file neko.yaml with default configuration, but if we would add neko.yml the default configuration would still be read. so instead, default configuartion was moved to the sever itself and no file is distributed with it by defautl.
This commit is contained in:
@@ -13,5 +13,3 @@ COPY --from=server /src/bin/neko /usr/bin/neko
|
|||||||
COPY --from=client /src/dist/ /var/www
|
COPY --from=client /src/dist/ /var/www
|
||||||
COPY --from=xorg-deps /usr/local/lib/xorg/modules/drivers/dummy_drv.so /usr/lib/xorg/modules/drivers/dummy_drv.so
|
COPY --from=xorg-deps /usr/local/lib/xorg/modules/drivers/dummy_drv.so /usr/lib/xorg/modules/drivers/dummy_drv.so
|
||||||
COPY --from=xorg-deps /usr/local/lib/xorg/modules/input/neko_drv.so /usr/lib/xorg/modules/input/neko_drv.so
|
COPY --from=xorg-deps /usr/local/lib/xorg/modules/input/neko_drv.so /usr/lib/xorg/modules/input/neko_drv.so
|
||||||
|
|
||||||
COPY config.yml /etc/neko/neko.yaml
|
|
||||||
|
|||||||
-17
@@ -1,17 +0,0 @@
|
|||||||
desktop:
|
|
||||||
screen: "1920x1080@60"
|
|
||||||
|
|
||||||
member:
|
|
||||||
# needed for legacy API ad there is no user management
|
|
||||||
provider: "multiuser"
|
|
||||||
multiuser:
|
|
||||||
admin_password: "admin"
|
|
||||||
user_password: "neko"
|
|
||||||
|
|
||||||
session:
|
|
||||||
merciful_reconnect: true
|
|
||||||
# default setting for legacy API
|
|
||||||
implicit_hosting: false
|
|
||||||
cookie:
|
|
||||||
# needed for legacy API
|
|
||||||
enabled: false
|
|
||||||
+24
-4
@@ -1,16 +1,36 @@
|
|||||||
services:
|
services:
|
||||||
neko:
|
neko:
|
||||||
|
# Runs Firefox in Neko. Firefox is the default, most tested image, but Neko
|
||||||
|
# supports many other browsers and applications - see the full list here:
|
||||||
|
# https://neko.m1k1o.net/docs/v3/installation/docker-images#apps
|
||||||
image: "ghcr.io/m1k1o/neko/firefox:latest"
|
image: "ghcr.io/m1k1o/neko/firefox:latest"
|
||||||
restart: "unless-stopped"
|
restart: "unless-stopped"
|
||||||
shm_size: "2gb"
|
shm_size: "2gb"
|
||||||
ports:
|
ports:
|
||||||
- "8080:8080"
|
- "8080:8080"
|
||||||
- "52000-52100:52000-52100/udp"
|
- "52000-52100:52000-52100/udp"
|
||||||
|
# volumes:
|
||||||
|
# Persist Firefox settings, bookmarks, extensions and history across
|
||||||
|
# container restarts by mounting the profile directory.
|
||||||
|
# See: https://neko.m1k1o.net/docs/v3/customization/browsers#persistent-profile
|
||||||
|
# - "./profile:/home/neko/.mozilla/firefox/profile.default"
|
||||||
|
|
||||||
|
# Or mount your own pre-configured Firefox profile instead of an empty one.
|
||||||
|
# See: https://neko.m1k1o.net/docs/v3/customization/browsers#persistent-profile
|
||||||
|
# - "./my-custom-profile:/home/neko/.mozilla/firefox/profile.default"
|
||||||
environment:
|
environment:
|
||||||
|
# You can configure either EPR or MUX ports for WebRTC.
|
||||||
|
# See: https://neko.m1k1o.net/docs/v3/configuration/webrtc#network
|
||||||
|
NEKO_WEBRTC_EPR: 52000-52100
|
||||||
|
# Specify the screen resolution and refresh rate for the virtual desktop. The
|
||||||
|
# default is 1920x1080@30, but you can change it to any other resolution.
|
||||||
|
# See: https://neko.m1k1o.net/docs/v3/configuration/desktop#screen
|
||||||
NEKO_DESKTOP_SCREEN: 1920x1080@30
|
NEKO_DESKTOP_SCREEN: 1920x1080@30
|
||||||
|
# You can configure a password for the default user and admin accounts. The
|
||||||
|
# default user account is "neko" and the default admin account is "admin".
|
||||||
|
# See: https://neko.m1k1o.net/docs/v3/configuration/authentication#member.multiuser
|
||||||
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: neko
|
NEKO_MEMBER_MULTIUSER_USER_PASSWORD: neko
|
||||||
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: admin
|
NEKO_MEMBER_MULTIUSER_ADMIN_PASSWORD: admin
|
||||||
NEKO_WEBRTC_EPR: 52000-52100
|
# Specifying reachable IP by clients is required when running Neko.
|
||||||
NEKO_WEBRTC_ICELITE: 1
|
# See: https://neko.m1k1o.net/docs/v3/configuration/webrtc#nat1to1
|
||||||
# See: https://neko.m1k1o.net/docs/v3/configuration/webrtc#ip
|
NEKO_WEBRTC_NAT1TO1: <your-IP>
|
||||||
# NEKO_NAT1TO1: <IP_ADDRESS>
|
|
||||||
|
|||||||
+2
-1
@@ -61,7 +61,8 @@ docker run --rm -it \
|
|||||||
-e "NEKO_WEBRTC_TCPMUX=${NEKO_MUX}" \
|
-e "NEKO_WEBRTC_TCPMUX=${NEKO_MUX}" \
|
||||||
-e "NEKO_WEBRTC_NAT1TO1=${NEKO_NAT1TO1}" \
|
-e "NEKO_WEBRTC_NAT1TO1=${NEKO_NAT1TO1}" \
|
||||||
-e "NEKO_SESSION_FILE=/home/neko/sessions.txt" \
|
-e "NEKO_SESSION_FILE=/home/neko/sessions.txt" \
|
||||||
-v "${PWD}/runtime/$CONFIG:/etc/neko/neko.yml" \
|
-e "NEKO_SERVER_CORS=*" \
|
||||||
|
-v "${PWD}/runtime/$CONFIG:/etc/neko/neko.yaml" \
|
||||||
-e "NEKO_DEBUG=1" \
|
-e "NEKO_DEBUG=1" \
|
||||||
--shm-size=2G \
|
--shm-size=2G \
|
||||||
--security-opt seccomp=unconfined \
|
--security-opt seccomp=unconfined \
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ func (Session) Init(cmd *cobra.Command) error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
cmd.PersistentFlags().Bool("session.implicit_hosting", true, "allow implicit control switching")
|
cmd.PersistentFlags().Bool("session.implicit_hosting", false, "allow implicit control switching")
|
||||||
if err := viper.BindPFlag("session.implicit_hosting", cmd.PersistentFlags().Lookup("session.implicit_hosting")); err != nil {
|
if err := viper.BindPFlag("session.implicit_hosting", cmd.PersistentFlags().Lookup("session.implicit_hosting")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
@@ -86,7 +86,7 @@ func (Session) Init(cmd *cobra.Command) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// cookie
|
// cookie
|
||||||
cmd.PersistentFlags().Bool("session.cookie.enabled", true, "whether cookies authentication should be enabled")
|
cmd.PersistentFlags().Bool("session.cookie.enabled", false, "whether cookies authentication should be enabled")
|
||||||
if err := viper.BindPFlag("session.cookie.enabled", cmd.PersistentFlags().Lookup("session.cookie.enabled")); err != nil {
|
if err := viper.BindPFlag("session.cookie.enabled", cmd.PersistentFlags().Lookup("session.cookie.enabled")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -511,7 +511,7 @@
|
|||||||
"enabled"
|
"enabled"
|
||||||
],
|
],
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"defaultValue": "true",
|
"defaultValue": "false",
|
||||||
"description": "whether cookies authentication should be enabled"
|
"description": "whether cookies authentication should be enabled"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -577,7 +577,7 @@
|
|||||||
"heartbeat_interval"
|
"heartbeat_interval"
|
||||||
],
|
],
|
||||||
"type": "int",
|
"type": "int",
|
||||||
"defaultValue": "120",
|
"defaultValue": "10",
|
||||||
"description": "interval in seconds for sending heartbeat messages"
|
"description": "interval in seconds for sending heartbeat messages"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -586,7 +586,7 @@
|
|||||||
"implicit_hosting"
|
"implicit_hosting"
|
||||||
],
|
],
|
||||||
"type": "boolean",
|
"type": "boolean",
|
||||||
"defaultValue": "true",
|
"defaultValue": "false",
|
||||||
"description": "allow implicit control switching"
|
"description": "allow implicit control switching"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -52,15 +52,15 @@
|
|||||||
--session.api_token string API token for interacting with external services
|
--session.api_token string API token for interacting with external services
|
||||||
--session.control_protection users can gain control only if at least one admin is in the room
|
--session.control_protection users can gain control only if at least one admin is in the room
|
||||||
--session.cookie.domain string domain of the cookie
|
--session.cookie.domain string domain of the cookie
|
||||||
--session.cookie.enabled whether cookies authentication should be enabled (default true)
|
--session.cookie.enabled whether cookies authentication should be enabled
|
||||||
--session.cookie.expiration duration expiration of the cookie (default 24h0m0s)
|
--session.cookie.expiration duration expiration of the cookie (default 24h0m0s)
|
||||||
--session.cookie.http_only use http only cookies (default true)
|
--session.cookie.http_only use http only cookies (default true)
|
||||||
--session.cookie.name string name of the cookie that holds token (default "NEKO_SESSION")
|
--session.cookie.name string name of the cookie that holds token (default "NEKO_SESSION")
|
||||||
--session.cookie.path string path of the cookie
|
--session.cookie.path string path of the cookie
|
||||||
--session.cookie.secure use secure cookies (default true)
|
--session.cookie.secure use secure cookies (default true)
|
||||||
--session.file string if sessions should be stored in a file, otherwise they will be stored only in memory
|
--session.file string if sessions should be stored in a file, otherwise they will be stored only in memory
|
||||||
--session.heartbeat_interval int interval in seconds for sending heartbeat messages (default 120)
|
--session.heartbeat_interval int interval in seconds for sending heartbeat messages (default 10)
|
||||||
--session.implicit_hosting allow implicit control switching (default true)
|
--session.implicit_hosting allow implicit control switching
|
||||||
--session.inactive_cursors show inactive cursors on the screen
|
--session.inactive_cursors show inactive cursors on the screen
|
||||||
--session.locked_controls whether controls should be locked for users initially
|
--session.locked_controls whether controls should be locked for users initially
|
||||||
--session.locked_logins whether logins should be locked for users initially
|
--session.locked_logins whether logins should be locked for users initially
|
||||||
|
|||||||
Reference in New Issue
Block a user