Sunkenland Avancé 9 min de lecture

Serveur Sunkenland sous Linux avec Docker

Faire tourner le serveur dédié Sunkenland sous Linux malgré l'absence de version officielle : image Docker communautaire basée sur Wine, docker compose, variables GAME_WORLD_GUID, GAME_REGION, GAME_MAX_PLAYER et mises à jour.

Serveur Sunkenland sous Linux avec Docker

Serveur Sunkenland sous Linux avec Docker

Vector3 Studio ne publie le serveur dédié Sunkenland que pour Windows. Pour l’héberger sur un VPS Linux, la communauté a créé une image Docker qui fait tourner le serveur Windows sous Wine. Ce guide montre comment l’utiliser, avec ses limites.

Solution non officielle : l’image Docker melle2/sunkenland-ds est un projet communautaire, sans lien avec Vector3 Studio. Elle peut être en retard après un patch du jeu.

⚡ Sans Docker ni Wine

Un serveur Sunkenland qui marche, sans bidouille

Chez HebergTonServ, nous gérons la compatibilité et les mises à jour pour vous : 6,90 €/mois, 10 Go RAM, Ryzen 9 5950X, SSD NVMe, support FR 24/7.

Voir l'offre Sunkenland →

Comment fonctionne l’image

ÉlémentValeur
Imagemelle2/sunkenland-ds (Docker Hub, GitHub)
Basewine-steamcmd-ubuntu (Ubuntu 24.04) avec Wine, Xvfb et SteamCMD
Utilisateur internesunkenland, UID/GID 7000
Port exposé27015
Dossiers/sunkenland/game, /sunkenland/Worlds, /sunkenland/Steam

Au démarrage, le conteneur installe ou met à jour le serveur (App ID 2667530) via SteamCMD, puis le lance sous Wine avec les paramètres que vous lui donnez par variables d’environnement.


Les variables d’environnement

VariableObligatoireDéfautÉquivalent paramètre
GAME_WORLD_GUIDOui—-worldGuid
GAME_PASSWORDNon—-password (8 caractères max)
GAME_REGIONNoneu-region
GAME_MAX_PLAYERNon3-maxPlayerCapacity (15 max)
GAME_SESSION_INVISIBLENonfalse-makeSessionInvisible
GAME_UPDATENonfalseMet à jour le serveur au démarrage
GAME_BETA_VERSIONNon—Branche bêta (publictest), avec GAME_UPDATE=true
USER_ID / GROUP_IDNon7000UID/GID de l’utilisateur interne

Le rôle de chaque paramètre du serveur est expliqué dans paramètres d’un serveur Sunkenland.


Étape 1 — Préparer les dossiers

sudo mkdir -p /opt/sunkenland/{Worlds,game,Steam}

Étape 2 — Envoyer le monde

Le serveur ne crée pas de monde. Sur votre PC Windows, récupérez le dossier <NomDuMonde>~<GUID> dans %USERPROFILE%\AppData\LocalLow\Vector3 Studio\Sunkenland\Worlds (ou dans SteamCloudData\<SteamID64>\Worlds), puis envoyez-le en SFTP dans /opt/sunkenland/Worlds/.

Notez le GUID : c’est la partie après le ~. Détails dans transférer un monde Sunkenland.

Étape 3 — Donner les droits à l’utilisateur du conteneur

sudo chown -R 7000:7000 /opt/sunkenland

Sans cette étape, le serveur ne peut ni lire le monde ni écrire ses sauvegardes.


Étape 4 — Le fichier docker-compose.yml

Créez /opt/sunkenland/docker-compose.yml :

services:
  sunkenland:
    container_name: sunkenland-dedicated-server
    image: melle2/sunkenland-ds:latest
    restart: unless-stopped
    environment:
      GAME_WORLD_GUID: "3f2a9c1e-8b7d-4e21-a5f0-6c9d2b1e7a44"
      GAME_PASSWORD: "Radeau26"
      GAME_REGION: "eu"
      GAME_MAX_PLAYER: "8"
      GAME_SESSION_INVISIBLE: "false"
      GAME_UPDATE: "true"
    ports:
      - "27015:27015/udp"
      - "27015:27015/tcp"
    volumes:
      - /opt/sunkenland/Worlds:/sunkenland/Worlds
      - /opt/sunkenland/game:/sunkenland/game
      - /opt/sunkenland/Steam:/sunkenland/Steam

GAME_UPDATE: "true" met le serveur à jour à chaque démarrage : indispensable vu la fréquence des patchs de Sunkenland.

Étape 5 — Démarrer et suivre les logs

cd /opt/sunkenland
docker compose up -d
docker compose logs -f

Le premier démarrage est long : téléchargement de SteamCMD, du serveur et initialisation de Wine. Attendez le message :

Server Start Complete, Ready for Clients to Join

Le ServerID est affiché dans les logs. Il change à chaque redémarrage du conteneur.


Mettre à jour le serveur

Avec GAME_UPDATE: "true", un simple redémarrage suffit :

docker compose restart

Pensez à mettre à jour l’image elle-même de temps en temps :

docker compose pull
docker compose up -d

Faites une copie de /opt/sunkenland/Worlds avant chaque mise à jour importante.


Ajouter des admins

Les fichiers AdminSteamIDs.txt et BanSteamIDs.txt se placent dans le dossier du monde, ici /opt/sunkenland/Worlds/<NomDuMonde>~<GUID>/. Gardez le propriétaire 7000:7000 et redémarrez le conteneur. Voir admins et bans sur un serveur Sunkenland.


Sauvegarde automatique (cron)

# /etc/cron.d/sunkenland-backup — tous les jours à 5h
0 5 * * * root tar -czf /root/backups/sunkenland_$(date +\%F).tar.gz -C /opt/sunkenland Worlds && find /root/backups -name 'sunkenland_*.tar.gz' -mtime +14 -delete

Créez le dossier /root/backups au préalable. Plus de conseils dans sauvegarder et restaurer un monde Sunkenland.


Les limites de cette méthode

  • Non officiel : après un gros patch, Wine ou l’image peuvent nécessiter une mise à jour avant que le serveur refonctionne.
  • Surcoût CPU et RAM : Wine et Xvfb ajoutent une couche. Prévoyez un peu plus de ressources qu’un serveur Windows natif (voir les paliers).
  • Dépannage plus complexe : une erreur peut venir du jeu, de Wine ou de Docker.

FAQ

Le conteneur s’arrête au démarrage

Le plus souvent : GAME_WORLD_GUID absent ou faux, ou dossier du monde illisible (droits 7000:7000 manquants).

Mes amis ne voient pas le serveur

Vérifiez GAME_REGION (doit correspondre à la région choisie dans le jeu) et GAME_SESSION_INVISIBLE. Dépannage complet : serveur Sunkenland qui ne s’affiche pas.

Peut-on faire tourner plusieurs mondes ?

Oui, avec un conteneur par monde, chacun avec ses dossiers et un port hôte différent (par exemple 27025:27015/udp).


Conclusion

L’image Docker communautaire rend possible un serveur Sunkenland sous Linux, au prix d’une couche Wine à surveiller. Si vous voulez simplement jouer, HebergTonServ fournit un serveur Sunkenland prêt à l’emploi, mis à jour et sauvegardé pour vous.

Pour aller plus loin

Sources : melle2/sunkenland-ds sur GitHub et Docker Hub, SteamDB — App 2667530.