Sign inSign up

ludix0/stationeers

By ludix0

•Updated 7 days ago

Dockerized dedicated server for Stationeers, auto-updated via SteamCMD.

Image
0

1.1K

ludix0/stationeers repository overview

⁠Stationeers — Dedicated Server (Docker)

🇬🇧 English⁠ | 🇫🇷 Français⁠


⁠English

Docker container to host a Stationeers dedicated server (SteamCMD App ID 600760). The server binary and dependencies are downloaded automatically via SteamCMD, running as an unprivileged user (configurable PUID/PGID).

  • Docker Hub image: ludix0/stationeers⁠
  • Ports used: 27016/udp + 27016/tcp (game), 27015/udp (server browser / update)
⁠Requirements
  • Docker + Docker Compose
  • About 2–3 GB of free disk space for the server files (SteamCMD download), plus space for save games
  • If the server must be reachable from the internet, forward the ports listed above on your router/firewall
mkdir -p ~/stationeers && cd ~/stationeers

Create a docker-compose.yml:

services:
  stationeers:
    image: ludix0/stationeers:latest
    container_name: stationeers
    restart: unless-stopped
    volumes:
      - ./data/server:/home/steam/stationeers_server
      - ./data/steamcmd:/home/steam/steamcmd
    environment:
      - TZ=Europe/Paris
      - PUID=1000
      - PGID=1000
      - UPDATE_ON_START=true
      - SAVE_NAME=word
      - MAP_NAME=Lunar
      - START_DAEMON=DefaultStart
      - SPAWN_POINT=LunarSpawnCraterVesper
      - DIFFICULTY=Easy
      - SERVER_NAME=My Stationeers Server
      - SERVER_PASSWORD=changeme
      - MAX_PLAYERS=6
      - AUTH_SECRET=changeme
      - GAME_PORT=27016
      - UPDATE_PORT=27015
      - AUTO_PAUSE=true
      - SAVE_INTERVAL=600
    ports:
      - "27016:27016/udp"
      - "27016:27016/tcp"
      - "27015:27015/udp"
docker compose up -d
docker compose logs -f
⁠Method 2 — Build from source (GitHub)
git clone https://github.com/Ludix0/stationeers.git
cd stationeers
ln -sf /path/to/your/secrets.env .env   # or create a .env with the variables below
docker build -t ludix0/stationeers:latest .
docker compose up -d
⁠Environment variables
VariableRequiredDescription
TZNoContainer timezone (e.g. Europe/Paris)
PUIDNoUser ID the server process runs as (default 1000)
PGIDNoGroup ID the server process runs as (default 1000)
UPDATE_ON_STARTNoIf true, updates the game via SteamCMD on every container start
SAVE_NAMENoSave/world name (default MyWorld)
MAP_NAMENoStarting map: Mars2, Lunar, Europa3, Vulcan2, Loulan (default Lunar)
START_DAEMONNoGame mode: DefaultStart, DefaultStartCommunity, Brutal, BrutalCommunity (default DefaultStart)
SPAWN_POINTNoSpawn point name, depends on the selected map (default LunarSpawnCraterVesper)
DIFFICULTYNoDifficulty: Easy, Normal, Challenging (default Easy)
SERVER_NAMENoServer name shown in the server browser (default Stationeers Docker)
SERVER_PASSWORDNoPassword required to join the server (default password)
MAX_PLAYERSNoMaximum number of players (default 6)
AUTH_SECRETNoServer authentication secret, used to reclaim server ownership (default SecretKey123)
GAME_PORTNoGame (UDP) port (default 27016)
UPDATE_PORTNoServer browser / update port (default 27015)
AUTO_PAUSENoAutomatically pauses the server when no player is connected (default true)
SAVE_INTERVALNoAuto-save interval in seconds (default 300)

None of the variables are strictly required — every one falls back to a default defined in start_server.sh — but SERVER_PASSWORD and AUTH_SECRET should always be set to something private.

⁠Volumes
VolumeContent
/home/steam/stationeers_serverServer binaries (downloaded by SteamCMD) and save games
/home/steam/steamcmdSteamCMD installation, kept so it isn't re-downloaded on every restart
⁠Ports
PortProtocolUsage
27016UDPGame port (players connect here)
27016TCPGame port (companion TCP channel)
27015UDPServer browser / update port

⁠Français

Conteneur Docker permettant d'héberger un serveur dédié Stationeers (App ID SteamCMD 600760). Le binaire du serveur et ses dépendances sont téléchargés automatiquement via SteamCMD, avec exécution sous un utilisateur non privilégié (PUID/PGID configurables).

  • Image Docker Hub : ludix0/stationeers⁠
  • Ports utilisés : 27016/udp + 27016/tcp (jeu), 27015/udp (navigateur de serveurs / mise à jour)
⁠Prérequis
  • Docker + Docker Compose
  • Environ 2 à 3 Go d'espace disque libre pour les fichiers du serveur (téléchargement SteamCMD), plus l'espace pour les sauvegardes
  • Si le serveur doit être accessible depuis internet, rediriger les ports ci-dessus sur votre routeur/pare-feu
⁠Méthode 1 — Installation rapide depuis Docker Hub (recommandé)
mkdir -p ~/stationeers && cd ~/stationeers

Créer un fichier docker-compose.yml :

services:
  stationeers:
    image: ludix0/stationeers:latest
    container_name: stationeers
    restart: unless-stopped
    volumes:
      - ./data/server:/home/steam/stationeers_server
      - ./data/steamcmd:/home/steam/steamcmd
    environment:
      - TZ=Europe/Paris
      - PUID=1000
      - PGID=1000
      - UPDATE_ON_START=true
      - SAVE_NAME=word
      - MAP_NAME=Lunar
      - START_DAEMON=DefaultStart
      - SPAWN_POINT=LunarSpawnCraterVesper
      - DIFFICULTY=Easy
      - SERVER_NAME=Mon serveur Stationeers
      - SERVER_PASSWORD=changeme
      - MAX_PLAYERS=6
      - AUTH_SECRET=changeme
      - GAME_PORT=27016
      - UPDATE_PORT=27015
      - AUTO_PAUSE=true
      - SAVE_INTERVAL=600
    ports:
      - "27016:27016/udp"
      - "27016:27016/tcp"
      - "27015:27015/udp"
docker compose up -d
docker compose logs -f
⁠Méthode 2 — Build depuis les sources (GitHub)
git clone https://github.com/Ludix0/stationeers.git
cd stationeers
ln -sf /chemin/vers/vos/secrets.env .env   # ou créer un .env avec les variables ci-dessous
docker build -t ludix0/stationeers:latest .
docker compose up -d
⁠Variables d'environnement
VariableRequiseDescription
TZNonFuseau horaire du conteneur (ex. Europe/Paris)
PUIDNonUID sous lequel tourne le processus du serveur (défaut 1000)
PGIDNonGID sous lequel tourne le processus du serveur (défaut 1000)
UPDATE_ON_STARTNonSi true, met à jour le jeu via SteamCMD à chaque démarrage du conteneur
SAVE_NAMENonNom de la sauvegarde/du monde (défaut MyWorld)
MAP_NAMENonCarte de départ : Mars2, Lunar, Europa3, Vulcan2, Loulan (défaut Lunar)
START_DAEMONNonMode de jeu : DefaultStart, DefaultStartCommunity, Brutal, BrutalCommunity (défaut DefaultStart)
SPAWN_POINTNonPoint d'apparition, dépend de la carte choisie (défaut LunarSpawnCraterVesper)
DIFFICULTYNonDifficulté : Easy, Normal, Challenging (défaut Easy)
SERVER_NAMENonNom du serveur affiché dans le navigateur de serveurs (défaut Stationeers Docker)
SERVER_PASSWORDNonMot de passe requis pour rejoindre le serveur (défaut password)
MAX_PLAYERSNonNombre maximum de joueurs (défaut 6)
AUTH_SECRETNonSecret d'authentification du serveur, utilisé pour récupérer la propriété du serveur (défaut SecretKey123)
GAME_PORTNonPort de jeu (UDP) (défaut 27016)
UPDATE_PORTNonPort du navigateur de serveurs / mise à jour (défaut 27015)
AUTO_PAUSENonMet automatiquement le serveur en pause quand aucun joueur n'est connecté (défaut true)
SAVE_INTERVALNonIntervalle de sauvegarde automatique en secondes (défaut 300)

Aucune variable n'est strictement obligatoire — chacune a une valeur par défaut définie dans start_server.sh — mais SERVER_PASSWORD et AUTH_SECRET doivent toujours être remplacées par des valeurs privées.

⁠Volumes
VolumeContenu
/home/steam/stationeers_serverBinaires du serveur (téléchargés par SteamCMD) et sauvegardes
/home/steam/steamcmdInstallation de SteamCMD, conservée pour éviter un re-téléchargement à chaque redémarrage
⁠Ports
PortProtocoleUsage
27016UDPPort de jeu (connexion des joueurs)
27016TCPPort de jeu (canal TCP complémentaire)
27015UDPNavigateur de serveurs / mise à jour

Tag summary

Content type

Image

Digest

sha256:858119027…

Size

194.5 MB

Last updated

7 days ago

docker pull ludix0/stationeers