# Steam Headless

Steam Headless is a containerised gaming desktop with Steam, Sunshine, and Proton preinstalled, giving homelab users GPU-accelerated remote game streaming via Steam Link, Steam Remote Play, Moonlight, or browser clients. It is open source and self-hosted, installable on Docker Hub, TrueNAS and Unraid.

Canonical page: https://ourlocalhost.com/app/924/steam-headless

## Description

Steam Headless is a containerised gaming desktop with Steam, Sunshine, and Proton preinstalled, giving homelab users GPU-accelerated remote game streaming via Steam Link, Steam Remote Play, Moonlight, or browser clients.

## Platform availability

Available on 2 of 9 platforms: Unraid, TrueNAS.

## Health score

75/100 (Good), based on 4 of 5 factors.
- Maintained: 86 (last commit 17 days ago)
- Popular: 74 (4,845 GitHub stars)
- Easy to install: 45 (2 install platforms, install notes, Docker image)
- Security check: 85 (no serious findings, CI)

## Links

- Documentation: https://steamheadless.com/docs/installation/host-preparation/Unraid
- Docker Hub: https://hub.docker.com/r/josh5/steam-headless
- TrueNAS: https://apps.truenas.com/catalog/steam-headless/
- GitHub: https://github.com/Steam-Headless/docker-steam-headless
- Official website: https://steamheadless.com/
- Unraid: https://ca.unraid.net/apps/steam-headless-1jp6pfc11mmiyk?q=steam-headless

## Common questions

### Where should I store files and the game library so they survive container updates?

Store anything you want to keep in the home directory or a Docker container mount you specify, because files outside the home directory are not persistent. For the Steam games library, mount it to /mnt/games and add that path in Steam.

### How do I use my host’s X server instead of having Steam Headless start its own X server?

Set DISPLAY=:0 and MODE=secondary. Optionally set HOST_DBUS=true and mount /run/dbus:/run/dbus:ro to use the host dbus process.

### Why does Steam Remote Play treat the container as being on a different network?

Create a custom network and assign the container its own IP for Steam Remote Play. Without that, Steam routes the traffic through the internet because it thinks the host is on a different network.

### How can I install additional launchers or applications after setup?

Create a script in ~/init.d ending with .sh to run at container startup, or use the WebUI under Applications > System > Software to install launchers such as Lutris, Heroic, or EmuDeck.

### Do I need to recreate the container after installing the Unraid uinput plugin?

Yes, recreate the Steam Headless container after installing the uinput plugin so the new module is detected.

## Alternatives

- Battle.net: Battle.net is an Internet-based online game, social networking service, digital distribution, and digital rights management platform develo…
- Epic Games Store: A digital platform offering rotating free games, an 88% revenue share for creators, exclusive 100% revenue for six months, and robust disco…
- GOG GALAXY: Connect GOG GALAXY 2.0 with multiple platforms and unite all your games and friends scattered across them in one powerful app.
- GOG.com: Digital store offering DRM-free classics and new PC titles with no client needed, 30-day returns, curated content, regular updates, and ext…
- Game Jolt: A community platform for gaming, anime, cosplay, and fandom.
- Google Play Store: Official Android marketplace for apps, games, books, movies, and more accessible via Android devices and web browsers with user reviews for…
- Heroic Games Launcher: Heroic is an Open Source Game Launcher for Linux, Windows and macOS (10.15+, won't work properly on High sierra and older versions).
- Hydra Launcher: Game launcher offering integrated BitTorrent downloads, automatic repack scraping from trusted sources, update notifications, and support f…
- Lutris: Lutris is an open source gaming platform for GNU/Linux.
- Playnite: Open-source game library manager unifying PC and emulated titles from platforms including Steam, GOG, and Origin with customizable plugins…
- Steam: Steam is a self-hosted LinuxServer.io container that runs the Steam client for Linux in Docker.
- Ubisoft Connect: A multi-platform ecosystem connecting players globally with cross-progression, rewards, and cross-play, accessible via desktop and mobile,…

---
Source: Our Local Host (https://ourlocalhost.com/app/924/steam-headless), the self-hosted and open-source app directory.
