Remove env_file and add all env variables to a environment: section

This commit is contained in:
Josh.5
2024-03-15 04:12:55 +13:00
parent a2caa9f4ec
commit 728acd0ba1
2 changed files with 66 additions and 33 deletions

View File

@@ -5,18 +5,24 @@
# |____/ \__, |___/\__\___|_| |_| |_| # |____/ \__, |___/\__\___|_| |_| |_|
# |___/ # |___/
# #
NAME='SteamHeadless' NAME=SteamHeadless
TZ='Pacific/Auckland' TZ=Pacific/Auckland
USER_LOCALES='en_US.UTF-8 UTF-8' USER_LOCALES=en_US.UTF-8 UTF-8
DISPLAY=':55' DISPLAY=:55
SHM_SIZE='2G' SHM_SIZE=2G
## DOCKER_RUNTIME: ## DOCKER_RUNTIME:
## Options: ['runc', 'nvidia'] ## Options: ['runc', 'nvidia']
## Description: The name of an implementation of OCI Runtime Spec ## Description: The name of an implementation of OCI Runtime Spec
## Available runtimes are listed when you run `docker info`. ## Available runtimes are listed when you run `docker info`.
## Your system may have other options available. As a simple rule, if you are ## 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'. ## 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' PUID=1000
PGID='1000' PGID=1000
UMASK='000' UMASK=000
USER_PASSWORD='password' USER_PASSWORD=password
# __ __ _ # __ __ _
# | \/ | ___ __| | ___ # | \/ | ___ __| | ___
@@ -42,7 +48,7 @@ USER_PASSWORD='password'
## Description: Steam Headless containers can run in a secondary mode that will only start ## 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 ## a Steam process that will then use the X server of either the host or another
## Steam Headless container running in 'primary' mode. ## Steam Headless container running in 'primary' mode.
MODE='primary' MODE=primary
# ____ _ # ____ _
# / ___| ___ _ ____ _(_) ___ ___ ___ # / ___| ___ _ ____ _(_) ___ ___ ___
@@ -56,41 +62,41 @@ MODE='primary'
## Options: ['vnc', 'neko', 'none'] ## Options: ['vnc', 'neko', 'none']
## Description: Configures the WebUI to use for accessing the virtual desktop. ## Description: Configures the WebUI to use for accessing the virtual desktop.
## Supported Modes: ['primary'] ## Supported Modes: ['primary']
WEB_UI_MODE='vnc' WEB_UI_MODE=vnc
## ENABLE_VNC_AUDIO: ## ENABLE_VNC_AUDIO:
## Options: ['true', 'false'] ## Options: ['true', 'false']
## Description: Enables audio over for the VNC Web UI if 'WEB_UI_MODE' is set to 'vnc'. ## 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: ## PORT_NOVNC_WEB:
## Description: Configure the port to use for the WebUI. ## Description: Configure the port to use for the WebUI.
PORT_NOVNC_WEB='8083' PORT_NOVNC_WEB=58083
## NEKO_NAT1TO1: ## NEKO_NAT1TO1:
## Description: Configure nat1to1 for the neko WebUI if it is enabled by setting 'WEB_UI_MODE' to 'neko'. ## 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. ## This will need to be the IP address of the host.
NEKO_NAT1TO1='' NEKO_NAT1TO1=
# Steam # Steam
## ENABLE_STEAM: ## ENABLE_STEAM:
## Options: ['true', 'false'] ## Options: ['true', 'false']
## Description: Enable Steam to run on start. This will also cause steam to restart automatically if closed. ## Description: Enable Steam to run on start. This will also cause steam to restart automatically if closed.
## Supported Modes: ['primary', 'secondary'] ## Supported Modes: ['primary', 'secondary']
ENABLE_STEAM='true' ENABLE_STEAM=true
## STEAM_ARGS: ## STEAM_ARGS:
## Description: Additional steam execution arguments. ## Description: Additional steam execution arguments.
#STEAM_ARGS='-silent -bigpicture' STEAM_ARGS=-silent
# Sunshine # Sunshine
## ENABLE_SUNSHINE: ## ENABLE_SUNSHINE:
## Options: ['true', 'false'] ## Options: ['true', 'false']
## Description: Enable Sunshine streaming service. ## Description: Enable Sunshine streaming service.
## Supported Modes: ['primary'] ## Supported Modes: ['primary']
ENABLE_SUNSHINE='false' ENABLE_SUNSHINE=false
## SUNSHINE_USER: ## SUNSHINE_USER:
## Description: Set the Sunshine service username. ## Description: Set the Sunshine service username.
#SUNSHINE_USER='admin' SUNSHINE_USER=admin
## SUNSHINE_PASS: ## SUNSHINE_PASS:
## Description: Set the Sunshine service password. ## Description: Set the Sunshine service password.
#SUNSHINE_PASS='admin' SUNSHINE_PASS=admin
# Xorg # Xorg
## ENABLE_EVDEV_INPUTS: ## 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 ## Description: Enable Keyboard and Mouse Passthrough. This will configure the Xorg server to catch all
## evdev events for Keyboard, Mouse, etc. ## evdev events for Keyboard, Mouse, etc.
## Supported Modes: ['primary'] ## Supported Modes: ['primary']
ENABLE_EVDEV_INPUTS='true' ENABLE_EVDEV_INPUTS=true
# Nvidia specific config (not required for non Nvidia GPUs) # Nvidia specific config (not required for non Nvidia GPUs)
## NVIDIA_DRIVER_CAPABILITIES: ## NVIDIA_DRIVER_CAPABILITIES:
## Options: ['all', 'compute', 'compat32', 'graphics', 'utility', 'video', 'display'] ## Options: ['all', 'compute', 'compat32', 'graphics', 'utility', 'video', 'display']
## Description: Controls which driver libraries/binaries will be mounted inside the container. ## Description: Controls which driver libraries/binaries will be mounted inside the container.
## Supported Modes: ['primary', 'secondary'] ## Supported Modes: ['primary', 'secondary']
NVIDIA_DRIVER_CAPABILITIES='all' NVIDIA_DRIVER_CAPABILITIES=all
## NVIDIA_DRIVER_CAPABILITIES: ## NVIDIA_DRIVER_CAPABILITIES:
## Available Options: ['all', 'none', '<GPU UUID>'] ## Available Options: ['all', 'none', '<GPU UUID>']
## Description: Controls which GPUs will be made accessible inside the container. ## Description: Controls which GPUs will be made accessible inside the container.
## Supported Modes: ['primary', 'secondary'] ## Supported Modes: ['primary', 'secondary']
NVIDIA_VISIBLE_DEVICES='all' NVIDIA_VISIBLE_DEVICES=all
## NVIDIA_DRIVER_VERSION: ## NVIDIA_DRIVER_VERSION:
## Description: Specify a driver version to force installation. Requires DOCKER_RUNTIME to be 'runc'. ## 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` ## Detect current host driver installed with `nvidia-smi 2> /dev/null | grep NVIDIA-SMI | cut -d ' ' -f3`
## Supported Modes: ['primary', 'secondary'] ## Supported Modes: ['primary', 'secondary']
#NVIDIA_DRIVER_VERSION='535.161.07' NVIDIA_DRIVER_VERSION=

View File

@@ -26,17 +26,46 @@ services:
# ENVIRONMENT: # ENVIRONMENT:
## Read all config variables from the .env file ## 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:
devices: devices:
# Use the host fuse device. # Use the host fuse device [REQUIRED].
- /dev/fuse - /dev/fuse
# Add the host uinput device. # Add the host uinput device [REQUIRED].
- /dev/uinput - /dev/uinput
# Add AMD/Intel HW accelerated video encoding/decoding devices (optional) # Add AMD/Intel HW accelerated video encoding/decoding devices [OPTIONAL].
#- /dev/dri #- /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/nvidia0
#- /dev/nvidiactl #- /dev/nvidiactl
#- /dev/nvidia-modeset #- /dev/nvidia-modeset
@@ -51,12 +80,12 @@ services:
# VOLUMES: # VOLUMES:
volumes: volumes:
# The location of your home directory. # 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. # The location where all games should be installed.
# This path needs to be set as a library path in Steam after logging in. # 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. # 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. # 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. # 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. # 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. # Leave commented out to not share the pulse socket with any other Docker containers.
#- /opt/container-data/steam-headless/pulse/:/tmp/pulse/:rw #- /opt/container-data/steam-headless/pulse/:/tmp/pulse/:rw