steam-headless

steam-headless

Docker app from Josh.5's Repository

Overview

Steam Headless is a containerised gaming desktop with Steam and Sunshine pre-installed. See the Steam Headless documentation for setup, GPU configuration and troubleshooting: https://steamheadless.com/docs/installation/host-preparation/Unraid WARNING: Host networking supports one Steam Headless container only. To run more than one, use macvlan networking and configure unique hostname values and appdata paths for every container.

Requirements


        NVIDIA users: install the Unraid Nvidia Driver plugin and append --runtime=nvidia to Extra
        Parameters. Set NVIDIA_VISIBLE_DEVICES to a specific device ID when the host has multiple
        NVIDIA GPUs and only one should be passed into the container.
        
        
        See https://steamheadless.com/docs/installation/deployment/unraid-template/ for all
        requirements.
    

Categories

Download Statistics

1,013,114
Total Downloads
95,787
This Month
64,676
Avg / Month

Total Downloads Over Time

Loading chart...

Related apps

Explore more like this

Explore all

Details

Repository
josh5/steam-headless:2
Last Updated2026-09-26
First Seen2022-01-10

Runtime arguments

Web UI
https://[IP]:8483/
Network
host
Shell
bash
Privileged
false
Extra Params
--hostname=steam-headless --security-opt writable-cgroups=true --security-opt seccomp=unconfined --security-opt systempaths=unconfined --cgroupns private --cap-add SYS_ADMIN --cap-add SYS_PTRACE --cap-add NET_ADMIN --cap-add DAC_READ_SEARCH --cap-add SYS_NICE --device-cgroup-rule 'c 13:* rwm' --stop-signal SIGRTMIN+3 --stop-timeout 30 --pids-limit 8192 --shm-size 2g -t --tmpfs /run --tmpfs /run/lock --tmpfs /tmp --tmpfs /dev/input:rw,dev,mode=0755

Template configuration

User ProfilePathrw

Persistent Steam profile, Proton prefixes, desktop settings and browser state. Keep on a direct cache-pool or disk path, never a /mnt/user FUSE share, and private to this container.

Target
/home/steamheadless
Default
/mnt/cache/appdata/steam-headless/home
Value
/mnt/cache/appdata/steam-headless/home
Steam Headless StatePathrw

Persistent settings, TLS certificates and Sunshine pairing keys. Use the direct cache-pool default, not a /mnt/user FUSE share. Set this alongside User Profile when changing the appdata location.

Target
/var/lib/steam-headless
Default
/mnt/cache/appdata/steam-headless/state
Value
/mnt/cache/appdata/steam-headless/state
System JournalPathrw

Persistent system and service logs. Use the direct cache-pool default, not a /mnt/user FUSE share, or SHUI may be unable to read logs. Set this alongside User Profile when changing the appdata location.

Target
/var/log/journal
Default
/mnt/cache/appdata/steam-headless/journal
Value
/mnt/cache/appdata/steam-headless/journal
Game LibraryPathrw

Steam library path. Use a direct disk or Unassigned Devices path, not a /mnt/user share.

Target
/mnt/games
Default
/mnt/disk1/Games
Value
/mnt/disk1/Games
GPU Render NodeDevice

GPU rendering and hardware encoding device. Run 'for node in /sys/class/drm/renderD*; do pci=$(basename $(readlink -f $node/device)); echo /dev/dri/$(basename $node) - $(lspci -s $pci); done' to list render nodes with their GPU vendor and model.

Target
/dev/dri/renderD128
Default
/dev/dri/renderD128
Value
/dev/dri/renderD128
PUIDVariable

Numeric host user ID that should own the persistent profile and games files.

Default
99
Value
99
PGIDVariable

Numeric host group ID that should own the persistent profile and games files.

Default
100
Value
100
Local TimePathro

Provides the host timezone to the container.

Target
/run/host-localtime
Default
/etc/localtime
Value
/etc/localtime
Input DiscoveryPathro

Read-only virtual-input sysfs required by the container's virtual-input service.

Target
/sys/devices/virtual/input
Default
/sys/devices/virtual/input
Value
/sys/devices/virtual/input
FUSE FilesystemDevice

Required by Flatpak and AppImage sandboxing.

Target
/dev/fuse
Default
/dev/fuse
Value
/dev/fuse
Virtual InputDevice

Required for virtual keyboard, mouse and controller input.

Target
/dev/uinput
Default
/dev/uinput
Value
/dev/uinput
Virtual HIDDevice

Required for virtual HID controller emulation.

Target
/dev/uhid
Default
/dev/uhid
Value
/dev/uhid
Session ModeVariable

Initial frontend mode. Use 'desktop' for KDE Plasma or 'gaming' for nested Gamescope and Steam Gamepad UI.

Target
STEAM_HEADLESS_SESSION_MODE
Default
desktop
Value
desktop
Desktop Steam AutostartVariable

When set to 'true' (default), the background systemd service starts Steam automatically with the desktop and restarts it after it closes. Set to 'false' to disable the autostart service while leaving Steam installed for manual launch.

Target
ENABLE_STEAM_SYSTEMD_SERVICE
Default
true
Value
true
Compositor Render DeviceVariable

[OPTIONAL] DRM render device used by the desktop compositor. Leave blank to select the first available render node.

Target
COMPOSITOR_RENDER_DEVICE
Encoder Render DeviceVariable

[OPTIONAL] DRM render device used by SHUI and Sunshine for hardware video encoding. Leave blank to use the compositor render device.

Target
ENCODER_RENDER_DEVICE
NVIDIA Visible DevicesVariable

NVIDIA runtime selection. Defaults to all NVIDIA GPUs; set a specific NVIDIA device ID when the host has multiple NVIDIA GPUs and only one should be passed into the container.

Target
NVIDIA_VISIBLE_DEVICES
Default
all
Value
all
NVIDIA Driver CapabilitiesVariable

NVIDIA runtime capabilities. All provides graphics, compute and NVENC video libraries.

Target
NVIDIA_DRIVER_CAPABILITIES
Default
all
Value
all