BR-HostingBR-HostingBR-Hosting
Inhalte
Kontakt
Impressum·Datenschutz·Inhalte·Kontakt·
© 2026 Tobias Brunnauerv0.6.3

Inhaltsverzeichnis

      • Alle Steam Game Server in Docker -- einfach und schnell
Zurück zu Projekte
Projekte/ Gameserver

Alle Steam Game Server in Docker -- einfach und schnell

Ein Docker-Framework mit dem du jeden Steam Game Server mit einem Befehl starten kannst -- egal ob Linux oder Windows. Base Image bauen, Repo klonen, docker compose up -d, läuft.

Veröffentlicht am 3. Mai 2026·4 Min. Lesezeit
dockerlinuxservergameserverwindowswine

Alle Steam Game Server in Docker -- einfach und schnell

Ich hab mir ein Framework gebaut, mit dem ich jeden Steam Dedicated Server in Docker zum Laufen bringen kann. Egal ob der Server nativ unter Linux läuft oder ob es nur eine Windows-Binary gibt -- beides funktioniert. Einmal aufgesetzt, und danach reicht ein einziger Befehl zum Starten, Updaten und Konfigurieren.

Das Ganze ist Open Source und auf GitHub verfügbar. Wenn dich das interessiert, kannst du es dir einfach holen und ausprobieren.


Worum geht's?

Ich wollte eine saubere Lösung haben, um Game Server zu deployen. Ohne jedes Mal von vorne anzufangen. Ohne manuell SteamCMD zu installieren, Wine einzurichten oder Config-Dateien zusammenzubasteln.

Das Ergebnis ist ein Docker-Framework das aus zwei Teilen besteht:

Ein Base Image -- da steckt alles drin was man braucht: Debian, SteamCMD, Wine 11.0, ein virtuelles Display (Xvfb) für Windows-Server, und ein Healthcheck-System das weiß ob der Server gerade updatet oder schon läuft.

Pro Spiel ein eigenes Repo -- mit Dockerfile, Docker Compose und ein paar kleinen Hook-Scripts. Jedes Repo funktioniert für sich allein. Du klonst es, passt die Settings an und startest. Fertig.

Aktuell gibt es zwei Server die damit laufen:

Spiel Plattform
Palworld Linux (nativ)
Windrose Windows (über Wine)

Die Images gibt es auf Docker Hub und GitHub Packages -- du kannst von beiden Quellen pullen:

# Docker Hub
docker pull rndmjoker/gameserver-steam-palworld:latest

# GitHub Container Registry
docker pull ghcr.io/rndmjoker/gameserver-steam-palworld:latest

Palworld ist ein nativer Linux-Server, Windrose läuft als Windows-Server headless über Wine. Beides produktiv getestet.


Was macht das Framework für dich?

  • Automatische Updates -- SteamCMD prüft bei jedem Start ob es was Neues gibt. Du musst dich um nichts kümmern.
  • Linux und Windows -- du setzt einfach STEAM_PLATFORM=linux oder STEAM_PLATFORM=windows und der Rest passiert automatisch. Wine, Xvfb, Mono, Gecko -- alles schon drin.
  • Konfiguration über Environment Variables -- keine Config-Dateien editieren. Alles was du einstellen willst setzt du als Docker Variable.
  • Retry bei Fehlern -- SteamCMD schlägt beim ersten Mal gerne mal fehl. Das Framework versucht es automatisch bis zu 3 Mal.
  • Healthcheck -- Docker weiß ob dein Server läuft oder ob noch ein Update durchgeführt wird.
  • Sauberes Shutdown -- bei SIGTERM fährt alles ordentlich runter, auch bei Windows-Servern über Wine.
  • Kein Root -- der Container läuft als normaler User.

Wie funktioniert das technisch?

Es gibt drei Schichten:

Schicht Was steckt drin Wie oft ändert sich das
Base Image Debian + Wine + Xvfb + SteamCMD Fast nie
Game Image App-ID, Binary, Ports, Hooks Einmal pro Spiel
Runtime Spieldaten, Configs, Savegames Bei jedem Start

Das Base Image kontrolliert den kompletten Ablauf über einen Entrypoint. Für spielspezifische Sachen gibt es Hook-Scripts die du einfach in dein Game-Repo legst:

Hook Wann Wofür
pre-setup.sh Am Anfang Defaults laden
post-config.sh Nach der Config-Generierung Configs dahin kopieren wo das Spiel sie braucht
post-update.sh Nach SteamCMD Mods installieren
pre-start.sh Vor dem Start Letzte Vorbereitungen

Was beim Start passiert:

1.  Defaults laden
2.  Bei Windows: Xvfb + Wine Prefix aufsetzen
3.  Config aus deinen Environment Variables generieren
4.  SteamCMD: Game herunterladen oder updaten
5.  Server starten

Was brauchst du?

  • Einen Linux-Server (oder lokale Linux-Maschine) mit Docker
  • Mindestens 8 GB RAM (besser 16 GB)
  • Docker und Docker Compose v2

Falls du Docker noch nicht hast:

curl -fsSL https://get.docker.com | sh

So richtest du es ein

Base Image bauen

Das Base Image musst du einmal bauen. Danach nutzen es alle deine Game Server.

git clone https://github.com/RndmJoker/gameserver-steam-basic.git steam-basic
cd steam-basic/base
docker build -t steam-server-base:wine-11.0 -t steam-server-base:latest .

Dauert ca. 5-10 Minuten. Danach hast du ein Image das alles enthält.

Einen fertigen Game Server starten

Wenn ein Server schon existiert, brauchst du nichts zu bauen. Erstell einfach eine docker-compose.yml:

mkdir palworld-server && cd palworld-server
services:
  palworld:
    # Docker Hub:
    image: rndmjoker/gameserver-steam-palworld:latest
    # Alternativ von GitHub Container Registry:
    # image: ghcr.io/rndmjoker/gameserver-steam-palworld:latest
    container_name: palworld-server
    restart: unless-stopped
    network_mode: host
    mem_limit: 12g
    volumes:
      - serverdata:/home/steam/serverdata
      - serverconfig:/home/steam/serverconfig
    environment:
      - ServerName=Mein Server
      - AdminPassword=sicheres-passwort

volumes:
  serverdata:
  serverconfig:
docker compose up -d
docker compose logs -f

Das Image wird gezogen, der Game Server runtergeladen, die Config generiert und der Server gestartet. Beim nächsten Neustart wird nur geprüft ob ein Update da ist.

Einen eigenen Game Server bauen

Wenn du selbst am Code arbeiten willst, klonst du das Repo und baust lokal:

git clone https://github.com/RndmJoker/gameserver-steam-palworld.git steam-palworld
cd steam-palworld
cp .env.example .env
nano .env
docker compose up -d --build

Einen komplett neuen Server anlegen

Für ein Spiel das es noch nicht gibt, habe ich ein CLI-Tool:

cd steam-basic
./tools/create-server.sh vrising 1829350 windows VRisingServer.exe 9876 udp 4g

Das generiert dir ein fertiges Verzeichnis mit Dockerfile, Docker Compose, Hooks und Config-Templates. Du musst dann nur noch die spielspezifischen Settings eintragen und die Hooks anpassen.


Netzwerk und Firewall

Alle Server laufen im Host Network Mode -- Docker nutzt direkt das Netzwerk deines Servers. Kein Port-Mapping, keine NAT-Probleme.

Wenn du eine externe Firewall hast (bei den meisten Hostern), musst du die Game-Ports dort selber freischalten. Docker macht das bei Host Mode nicht automatisch.


Daten und Backups

Alles liegt auf Docker Volumes und bleibt erhalten -- auch wenn du den Container neu baust oder updatest.

Volume Pfad Inhalt
serverdata /home/steam/serverdata Spieldateien und Savegames
serverconfig /home/steam/serverconfig Configs

SteamCMD arbeitet inkrementell. Ein Neustart ohne Game-Patch dauert nur ein paar Sekunden.


Links

  • GitHub: github.com/RndmJoker/gameserver-steam-basic
  • Docker Hub: hub.docker.com/u/rndmjoker
  • Lizenz: MIT

Jeder neue Game Server der dazukommt bekommt hier einen eigenen Artikel, in dem alles nochmal im Detail erklärt wird -- Einrichtung, Settings, Troubleshooting.

Wenn du Fragen hast, einen bestimmten Server brauchst oder einfach Feedback dalassen willst, schreib mir gerne über das Kontaktformular.

Zurück zu Projekte