From 728acd0ba18a04525f5668bfe620af1ea17d42d8 Mon Sep 17 00:00:00 2001 From: "Josh.5" Date: Fri, 15 Mar 2024 04:12:55 +1300 Subject: [PATCH] Remove `env_file` and add all env variables to a environment: section --- docs/compose-files/.env | 54 ++++++++++--------- docs/compose-files/docker-compose.default.yml | 45 ++++++++++++---- 2 files changed, 66 insertions(+), 33 deletions(-) diff --git a/docs/compose-files/.env b/docs/compose-files/.env index 6f9697a..25bd78b 100644 --- a/docs/compose-files/.env +++ b/docs/compose-files/.env @@ -5,18 +5,24 @@ # |____/ \__, |___/\__\___|_| |_| |_| # |___/ # -NAME='SteamHeadless' -TZ='Pacific/Auckland' -USER_LOCALES='en_US.UTF-8 UTF-8' -DISPLAY=':55' -SHM_SIZE='2G' +NAME=SteamHeadless +TZ=Pacific/Auckland +USER_LOCALES=en_US.UTF-8 UTF-8 +DISPLAY=:55 +SHM_SIZE=2G ## DOCKER_RUNTIME: ## Options: ['runc', 'nvidia'] ## Description: The name of an implementation of OCI Runtime Spec ## Available runtimes are listed when you run `docker info`. ## Your system may have other options available. As a simple rule, if you are ## using an NVIDIA GPU, set this to 'nvidia' for anything else, set this to 'runc'. -DOCKER_RUNTIME='runc' +DOCKER_RUNTIME=runc +## HOME_DIR: +## Description: The path to the home directory on your host. Mounts to `/home/default` inside the container. +HOME_DIR=/opt/container-data/steam-headless/home +## GAMES_DIR: +## Description: The path to the games directory on your host. Mounts to `/mnt/games` inside the container. +GAMES_DIR=/mnt/games # ____ __ _ _ _ _ # | _ \ ___ / _| __ _ _ _| | |_ | | | |___ ___ _ __ @@ -25,10 +31,10 @@ DOCKER_RUNTIME='runc' # |____/ \___|_| \__,_|\__,_|_|\__| \___/|___/\___|_| # # -PUID='1000' -PGID='1000' -UMASK='000' -USER_PASSWORD='password' +PUID=1000 +PGID=1000 +UMASK=000 +USER_PASSWORD=password # __ __ _ # | \/ | ___ __| | ___ @@ -42,7 +48,7 @@ USER_PASSWORD='password' ## Description: Steam Headless containers can run in a secondary mode that will only start ## a Steam process that will then use the X server of either the host or another ## Steam Headless container running in 'primary' mode. -MODE='primary' +MODE=primary # ____ _ # / ___| ___ _ ____ _(_) ___ ___ ___ @@ -56,41 +62,41 @@ MODE='primary' ## Options: ['vnc', 'neko', 'none'] ## Description: Configures the WebUI to use for accessing the virtual desktop. ## Supported Modes: ['primary'] -WEB_UI_MODE='vnc' +WEB_UI_MODE=vnc ## ENABLE_VNC_AUDIO: ## Options: ['true', 'false'] ## Description: Enables audio over for the VNC Web UI if 'WEB_UI_MODE' is set to 'vnc'. -ENABLE_VNC_AUDIO='true' +ENABLE_VNC_AUDIO=true ## PORT_NOVNC_WEB: ## Description: Configure the port to use for the WebUI. -PORT_NOVNC_WEB='8083' +PORT_NOVNC_WEB=58083 ## NEKO_NAT1TO1: ## Description: Configure nat1to1 for the neko WebUI if it is enabled by setting 'WEB_UI_MODE' to 'neko'. ## This will need to be the IP address of the host. -NEKO_NAT1TO1='' +NEKO_NAT1TO1= # Steam ## ENABLE_STEAM: ## Options: ['true', 'false'] ## Description: Enable Steam to run on start. This will also cause steam to restart automatically if closed. ## Supported Modes: ['primary', 'secondary'] -ENABLE_STEAM='true' +ENABLE_STEAM=true ## STEAM_ARGS: ## Description: Additional steam execution arguments. -#STEAM_ARGS='-silent -bigpicture' +STEAM_ARGS=-silent # Sunshine ## ENABLE_SUNSHINE: ## Options: ['true', 'false'] ## Description: Enable Sunshine streaming service. ## Supported Modes: ['primary'] -ENABLE_SUNSHINE='false' +ENABLE_SUNSHINE=false ## SUNSHINE_USER: ## Description: Set the Sunshine service username. -#SUNSHINE_USER='admin' +SUNSHINE_USER=admin ## SUNSHINE_PASS: ## Description: Set the Sunshine service password. -#SUNSHINE_PASS='admin' +SUNSHINE_PASS=admin # Xorg ## ENABLE_EVDEV_INPUTS: @@ -98,21 +104,21 @@ ENABLE_SUNSHINE='false' ## Description: Enable Keyboard and Mouse Passthrough. This will configure the Xorg server to catch all ## evdev events for Keyboard, Mouse, etc. ## Supported Modes: ['primary'] -ENABLE_EVDEV_INPUTS='true' +ENABLE_EVDEV_INPUTS=true # Nvidia specific config (not required for non Nvidia GPUs) ## NVIDIA_DRIVER_CAPABILITIES: ## Options: ['all', 'compute', 'compat32', 'graphics', 'utility', 'video', 'display'] ## Description: Controls which driver libraries/binaries will be mounted inside the container. ## Supported Modes: ['primary', 'secondary'] -NVIDIA_DRIVER_CAPABILITIES='all' +NVIDIA_DRIVER_CAPABILITIES=all ## NVIDIA_DRIVER_CAPABILITIES: ## Available Options: ['all', 'none', ''] ## Description: Controls which GPUs will be made accessible inside the container. ## Supported Modes: ['primary', 'secondary'] -NVIDIA_VISIBLE_DEVICES='all' +NVIDIA_VISIBLE_DEVICES=all ## NVIDIA_DRIVER_VERSION: ## Description: Specify a driver version to force installation. Requires DOCKER_RUNTIME to be 'runc'. ## Detect current host driver installed with `nvidia-smi 2> /dev/null | grep NVIDIA-SMI | cut -d ' ' -f3` ## Supported Modes: ['primary', 'secondary'] -#NVIDIA_DRIVER_VERSION='535.161.07' +NVIDIA_DRIVER_VERSION= diff --git a/docs/compose-files/docker-compose.default.yml b/docs/compose-files/docker-compose.default.yml index 9ad47a3..3a81397 100644 --- a/docs/compose-files/docker-compose.default.yml +++ b/docs/compose-files/docker-compose.default.yml @@ -26,17 +26,46 @@ services: # ENVIRONMENT: ## Read all config variables from the .env file - env_file: .env + environment: + # System + - TZ=${TZ} + - USER_LOCALES=${USER_LOCALES} + - DISPLAY=${DISPLAY} + # User + - PUID=${PUID} + - PGID=${PGID} + - UMASK=${UMASK} + - USER_PASSWORD=${USER_PASSWORD} + # Mode + - MODE=${MODE} + # Web UI + - WEB_UI_MODE=${WEB_UI_MODE} + - ENABLE_VNC_AUDIO=${ENABLE_VNC_AUDIO} + - PORT_NOVNC_WEB=${PORT_NOVNC_WEB} + - NEKO_NAT1TO1=${NEKO_NAT1TO1} + # Steam + - ENABLE_STEAM=${ENABLE_STEAM} + - STEAM_ARGS=${STEAM_ARGS} + # Sunshine + - ENABLE_SUNSHINE=${ENABLE_SUNSHINE} + - SUNSHINE_USER=${SUNSHINE_USER} + - SUNSHINE_PASS=${SUNSHINE_PASS} + # Xorg + - ENABLE_EVDEV_INPUTS=${ENABLE_EVDEV_INPUTS} + # Nvidia specific config + - NVIDIA_DRIVER_CAPABILITIES=${NVIDIA_DRIVER_CAPABILITIES} + - NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES} + - NVIDIA_DRIVER_VERSION=${NVIDIA_DRIVER_VERSION} # DEVICES: devices: - # Use the host fuse device. + # Use the host fuse device [REQUIRED]. - /dev/fuse - # Add the host uinput device. + # Add the host uinput device [REQUIRED]. - /dev/uinput - # Add AMD/Intel HW accelerated video encoding/decoding devices (optional) + # Add AMD/Intel HW accelerated video encoding/decoding devices [OPTIONAL]. #- /dev/dri - # Add NVIDIA HW accelerated devices (optional - must be run with runc docker runtime. If you use the nvidia runtime, this is not needed) + # Add NVIDIA HW accelerated devices [OPTIONAL - must be run with runc docker runtime. If you use the nvidia runtime, this is not needed]. #- /dev/nvidia0 #- /dev/nvidiactl #- /dev/nvidia-modeset @@ -51,12 +80,12 @@ services: # VOLUMES: volumes: # The location of your home directory. - - /opt/container-data/steam-headless/home/:/home/default/:rw + - ${HOME_DIR}/:/home/default/:rw # The location where all games should be installed. # This path needs to be set as a library path in Steam after logging in. # Otherwise, Steam will store games in the home directory above. - - /mnt/games/:/mnt/games/:rw + - ${GAMES_DIR}/:/mnt/games/:rw # The Xorg socket. This will be shared with other containers so they can access the X server. # Select only one option or leave commented out to not share the Xorg socket with any other Docker containers. @@ -68,5 +97,3 @@ services: # Pulse audio socket. This will be shared with other containers so they can access the audio sink. # Leave commented out to not share the pulse socket with any other Docker containers. #- /opt/container-data/steam-headless/pulse/:/tmp/pulse/:rw - -