Ein Satisfactory-Server läuft mit dem offiziellen LinuxGSM-Image ghcr.io/gameservermanagers/gameserver:sf. Für jedes andere Spiel tauschst du nur das Kürzel hinter dem Doppelpunkt aus. Die vollständige Liste findest du am Ende.
Überblick#
So funktioniert das Image (docker-gameserver auf GitHub):
- Ein Image pro Spiel:
ghcr.io/gameservermanagers/gameserver:<kürzel>oder gleichwertig von Docker Hubgameservermanagers/gameserver:<kürzel>. - Installation beim ersten Start: LinuxGSM lädt den Spielserver beim ersten Start herunter und startet ihn danach automatisch.
- Automatische Updates: Standardmäßig prüft der Container alle 60 Minuten und bei jedem Start auf Server-Updates.
- Ein Datenordner:
/dataim Container ist das Home-Verzeichnis des Benutzerslinuxgsm. Dort liegen Serverdateien, Konfiguration, Spielstände und Backups. Diesen Ordner musst du dauerhaft auf dem Host speichern. - Kein Root: Der Spielserver läuft als Benutzer
linuxgsm, nicht als root.
Voraussetzungen#
Du brauchst einen Linux-Server (z. B. Ubuntu oder Debian) mit Docker und dem Compose-Plugin. Satisfactory braucht viel Arbeitsspeicher: Plane mindestens 8 GB RAM ein, bei großen Fabriken eher mehr (Richtwert, kein offizieller Wert).
Docker mit dem offiziellen Skript installieren:
curl -fsSL https://get.docker.com | sudo shDeinen Benutzer zur Docker-Gruppe hinzufügen, damit du kein
sudobrauchst. Danach einmal ab- und wieder anmelden:sudo usermod -aG docker $USERPrüfen, ob alles da ist:
docker --version docker compose version
Satisfactory-Server einrichten#
Satisfactory nutzt laut LinuxGSM-Standardkonfiguration Port 7777 (UDP fürs Spiel, TCP für die Server-API) und Port 8888 (TCP, Reliable Port). Diese drei Ports gibst du im Container frei.
Projektordner anlegen:
mkdir -p ~/gameserver/satisfactory cd ~/gameserver/satisfactoryDie Datei
docker-compose.ymlmit diesem Inhalt anlegen:services: sfserver: image: ghcr.io/gameservermanagers/gameserver:sf container_name: sfserver volumes: - ./data:/data ports: - "7777:7777/udp" - "7777:7777/tcp" - "8888:8888/tcp" environment: - UPDATE_CHECK=60 restart: unless-stoppedContainer starten und die Installation verfolgen. Der erste Start dauert einige Minuten, weil der komplette Server heruntergeladen wird. Mit Strg + C verlässt du nur die Log-Ansicht, der Server läuft weiter:
docker compose up -d docker compose logs -fPorts in der Firewall öffnen (Beispiel mit
ufw) und im Router dieselben Ports an den Server weiterleiten, wenn Freunde von außen spielen sollen:sudo ufw allow 7777/udp sudo ufw allow 7777/tcp sudo ufw allow 8888/tcpIm Spiel den Server Manager öffnen, den Server mit
IP-ADRESSE:7777hinzufügen, ihn beanspruchen und ein Admin-Passwort vergeben.
Bei Berechtigungsfehlern im Ordner data die Benutzer-ID im Container prüfen und den Ordner dieser ID übergeben:
docker exec sfserver id linuxgsm
sudo chown -R <UID>:<GID> ./dataServer verwalten#
Alle LinuxGSM-Befehle laufen über docker exec als Benutzer linuxgsm. Der Skriptname ist bei Satisfactory sfserver.
| Aufgabe | Befehl |
|---|---|
| Status, Ports, Passwörter anzeigen | docker exec -it --user linuxgsm sfserver ./sfserver details |
| Spielserver aktualisieren | docker exec -it --user linuxgsm sfserver ./sfserver update |
| Backup erstellen | docker exec -it --user linuxgsm sfserver ./sfserver backup |
| Spielserver neu starten | docker exec -it --user linuxgsm sfserver ./sfserver restart |
| Live-Logs ansehen | docker logs -f sfserver |
| Shell im Container | docker exec -it --user linuxgsm sfserver bash |
| Container stoppen / starten | docker compose stop / docker compose start |
Image aktualisieren (neue LinuxGSM-Version), im Projektordner. Die Daten in ./data bleiben erhalten:
docker compose pull
docker compose up -d
docker image prune -fDateien finden: Weil /data das Home-Verzeichnis ist, liegt alles unter ./data auf dem Host. Die genauen Pfade findest du am schnellsten so:
find ./data -name "sfserver.cfg" # LinuxGSM-Konfiguration
find ./data -type d -name SaveGames # Satisfactory-Spielstände
find ./data -type d -name backup # LinuxGSM-BackupsUpdate-Verhalten anpassen: UPDATE_CHECK auf 1 bis 59 setzt das Prüfintervall in Minuten, 0 schaltet die regelmäßige Prüfung ab. UPDATE_ON_START=false überspringt das Update beim Containerstart.
Ein anderes Spiel einrichten#
Für ein anderes Spiel änderst du in der docker-compose.yml drei Dinge: das Kürzel im Image, den Containernamen und die Ports. Beispiel Valheim:
services:
vhserver:
image: ghcr.io/gameservermanagers/gameserver:vh
container_name: vhserver
volumes:
- ./data:/data
network_mode: host
restart: unless-stopped- Ports herausfinden: Jedes Spiel nutzt andere Ports. LinuxGSM zeigt sie nach der Installation und bei jedem Start im Log an, oder mit
./<skriptname> details. - Bequeme Alternative: Mit
network_mode: host(wie oben) nutzt der Container die Ports des Hosts direkt, und du musst keine einzelnen Ports eintragen. Das offizielle Beispiel verwendet genau diese Variante. - Mehrere Server auf einem Host: Jeder Server bekommt einen eigenen Projektordner mit eigenem
data-Ordner. Mitnetwork_mode: hostdürfen sich die Ports der Spiele nicht überschneiden.
Häufige Probleme#
| Problem | Lösung |
|---|---|
| Server nicht von außen erreichbar | Firewall (ufw) und Portweiterleitung im Router prüfen, Ports mit details abgleichen |
Permission denied im Datenordner | Benutzer-ID mit docker exec <container> id linuxgsm prüfen und ./data per chown übergeben |
| Container startet immer wieder neu | docker logs <container> lesen; oft fehlt RAM oder Speicherplatz |
| Update beim Start dauert zu lange | UPDATE_ON_START=false setzen |
Alle Image-Kürzel#
Das Image lautet immer ghcr.io/gameservermanagers/gameserver:<Image-Kürzel>. Der Skriptname ist der Befehl für docker exec und meist auch ein guter Containername. Stand: 8. November 2026, 150 Spielserver laut LinuxGSM-Serverliste.
| Spiel | Image-Kürzel | Skriptname |
|---|---|---|
| 7 Days to Die | sdtd | sdtdserver |
| Action Half-Life | ahl | ahlserver |
| Action: Source | ahl2 | ahl2server |
| American Truck Simulator | ats | atsserver |
| ARK: Survival Evolved | ark | arkserver |
| ARMA 3 | arma3 | arma3server |
| Arma Reforger | armar | armarserver |
| Assetto Corsa | ac | acserver |
| Avorion | av | avserver |
| Ballistic Overkill | bo | boserver |
| Barotrauma | bt | btserver |
| Base Defense | bd | bdserver |
| BATTALION: Legacy | btl | btlserver |
| Battlefield 1942 | bf1942 | bf1942server |
| Battlefield: Vietnam | bfv | bfvserver |
| Battlefront Eternal | bfe | bfeserver |
| Black Mesa: Deathmatch | bmdm | bmdmserver |
| Blade Symphony | bs | bsserver |
| BrainBread | bb | bbserver |
| BrainBread 2 | bb2 | bb2server |
| Call of Duty | cod | codserver |
| Call of Duty 2 | cod2 | cod2server |
| Call of Duty 4 | cod4 | cod4server |
| Call of Duty: United Offensive | coduo | coduoserver |
| Call of Duty: World at War | codwaw | codwawserver |
| Chivalry: Medieval Warfare | cmw | cmwserver |
| Codename CURE | cc | ccserver |
| Colony Survival | col | colserver |
| Conan Exiles | ce | ceserver |
| Core Keeper | ck | ckserver |
| Counter-Strike 1.6 | cs | csserver |
| Counter-Strike 2 | cs2 | cs2server |
| Counter-Strike: Condition Zero | cscz | csczserver |
| Counter-Strike: Global Offensive | csgo | csgoserver |
| Counter-Strike: Source | css | cssserver |
| Counter-Strike: WON2 | cswon | cswonserver |
| Craftopia | ct | ctserver |
| Day of Defeat | dod | dodserver |
| Day of Defeat: Source | dods | dodsserver |
| Day of Dragons | dodr | dodrserver |
| Day of Infamy | doi | doiserver |
| DayZ | dayz | dayzserver |
| Deathmatch Classic | dmc | dmcserver |
| Don’t Starve Together | dst | dstserver |
| Double Action: Boogaloo | dab | dabserver |
| Dystopia | dys | dysserver |
| Eco | eco | ecoserver |
| Empires Mod | em | emserver |
| ET: Legacy | etl | etlserver |
| Euro Truck Simulator 2 | ets2 | ets2server |
| Factorio | fctr | fctrserver |
| Fistful of Frags | fof | fofserver |
| FiveM | fivem | fivemserver |
| Garrys Mod | gmod | gmodserver |
| Half-Life 2: Deathmatch | hl2dm | hl2dmserver |
| Half-Life Deathmatch: Source | hldms | hldmsserver |
| Half-Life: Deathmatch | hldm | hldmserver |
| Half-Life: WON2 | hlwon | hlwonserver |
| Humanitz | hz | hzserver |
| Hurtworld | hw | hwserver |
| HYPERCHARGE: Unboxed | hcu | hcuserver |
| Hytale | hyt | hytserver |
| Insurgency | ins | insserver |
| Insurgency: Sandstorm | inss | inssserver |
| IOSoccer | ios | iosserver |
| Jabroni Brawl: Episode 3 | jbep3 | jbep3server |
| Jedi Knight II: Jedi Outcast | jk2 | jk2server |
| Jedi Knight: Jedi Academy | jk3 | jk3server |
| Just Cause 2 | jc2 | jc2server |
| Just Cause 3 | jc3 | jc3server |
| Killing Floor | kf | kfserver |
| Killing Floor 2 | kf2 | kf2server |
| Left 4 Dead | l4d | l4dserver |
| Left 4 Dead 2 | l4d2 | l4d2server |
| Luanti | luanti | luantiserver |
| Medal of Honor: Allied Assault | mohaa | mohaaserver |
| Military Conflict: Vietnam | mcv | mcvserver |
| Minecraft | mc | mcserver |
| Minecraft Bedrock | mcb | mcbserver |
| MORDHAU | mh | mhserver |
| Multi Theft Auto | mta | mtaserver |
| Natural Selection | ns | nsserver |
| Natural Selection 2 | ns2 | ns2server |
| Necesse | nec | necserver |
| No More Room in Hell | nmrih | nmrihserver |
| NS2: Combat | ns2c | ns2cserver |
| Nuclear Dawn | nd | ndserver |
| Onset | onset | onsetserver |
| OpenRA: Red Alert | orar | orarserver |
| Operation: Harsh Doorstop | ohd | ohdserver |
| Opposing Force | opfor | opforserver |
| Palworld | pw | pwserver |
| PaperMC | pmc | pmcserver |
| Pavlov VR | pvr | pvrserver |
| Pirates Vikings & Knights II | pvkii | pvkiiserver |
| Project Cars | pc | pcserver |
| Project Cars 2 | pc2 | pc2server |
| Project Zomboid | pz | pzserver |
| Quake 2 | q2 | q2server |
| Quake 3: Arena | q3 | q3server |
| Quake 4 | q4 | q4server |
| Quake Live | ql | qlserver |
| Quake World | qw | qwserver |
| Red Orchestra: Ostfront 41-45 | ro | roserver |
| Return to Castle Wolfenstein | rtcw | rtcwserver |
| Ricochet | ricochet | ricochetserver |
| Rising World | rw | rwserver |
| RuneScape: Dragonwilds | rsdw | rsdwserver |
| Running With Rifles | rwr | rwrserver |
| Rust | rust | rustserver |
| San Andreas Multiplayer | samp | sampserver |
| Satisfactory | sf | sfserver |
| SCP: Secret Laboratory | scpsl | scpslserver |
| Soldat | sol | solserver |
| Soldier Of Fortune 2: Gold Edition | sof2 | sof2server |
| Soulmask | sm | smserver |
| SourceForts Classic | sfc | sfcserver |
| Squad | squad | squadserver |
| Squad 44 | squad44 | squad44server |
| Starbound | sb | sbserver |
| Stationeers | st | stserver |
| StickyBots | sbots | sbotsserver |
| Survive the Nights | stn | stnserver |
| Sven Co-op | sven | svenserver |
| Team Fortress 2 | tf2 | tf2server |
| Team Fortress 2 Classified | tf2c | tf2cserver |
| Team Fortress Classic | tfc | tfcserver |
| Teamspeak 3 | ts3 | ts3server |
| Teeworlds | tw | twserver |
| Terraria | terraria | terrariaserver |
| The Front | tf | tfserver |
| The Isle | ti | tiserver |
| The Specialists | ts | tsserver |
| Tower Unite | tu | tuserver |
| Unreal Tournament | ut | utserver |
| Unreal Tournament 2004 | ut2k4 | ut2k4server |
| Unreal Tournament 3 | ut3 | ut3server |
| Unreal Tournament 99 | ut99 | ut99server |
| Unturned | unt | untserver |
| Valheim | vh | vhserver |
| Vampire Slayer | vs | vsserver |
| Velocity Proxy MC | vpmc | vpmcserver |
| Vintage Story | vints | vintsserver |
| Warfork | wf | wfserver |
| WaterfallMC | wmc | wmcserver |
| Wolfenstein: Enemy Territory | wet | wetserver |
| Wurm Unlimited | wurm | wurmserver |
| Xonotic | xnt | xntserver |
| Zombie Master: Reborn | zmr | zmrserver |
| Zombie Panic! Source | zps | zpsserver |

