--- services: steam-headless: image: josh5/steam-headless:latest restart: unless-stopped runtime: ${DOCKER_RUNTIME} ## NOTE: This config uses privileged to access to host to be able to access the required devices privileged: true shm_size: ${SHM_SIZE} ipc: host # Could also be set to 'shareable' ulimits: nofile: soft: 1024 hard: 524288 # NETWORK: ## NOTE: If we do not use the host network, then physical device input is not possible ## and your USB connected controllers will not work in steam games. network_mode: host hostname: ${NAME} extra_hosts: - "${NAME}:127.0.0.1" # ENVIRONMENT: ## Read all config variables from the .env file env_file: .env # VOLUMES: volumes: # The location of your home directory. - /opt/container-data/steam-headless/home/:/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 # The Xorg socket. This will be shared with other containers so they can access the X server. # Select only one option: # Option #1) Start a X server in the container to share with any other containers. #- /opt/container-data/steam-headless/.X11-unix/:/tmp/.X11-unix/:rw # Option #2) Use an existing X server running on the host. #- /tmp/.X11-unix/:/tmp/.X11-unix/:rw # 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 # Input devices used for mouse and joypad support inside the container. - /dev/input/:/dev/input/:ro # Store flatpak var files in a volume. - steam-headless-var-lib-flatpak:/var/lib/flatpak/:rw volumes: steam-headless-var-lib-flatpak: