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-dsest 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.
Comment fonctionne l’image
| Élément | Valeur |
|---|---|
| Image | melle2/sunkenland-ds (Docker Hub, GitHub) |
| Base | wine-steamcmd-ubuntu (Ubuntu 24.04) avec Wine, Xvfb et SteamCMD |
| Utilisateur interne | sunkenland, 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
| Variable | Obligatoire | Défaut | Équivalent paramètre |
|---|---|---|---|
GAME_WORLD_GUID | Oui | — | -worldGuid |
GAME_PASSWORD | Non | — | -password (8 caractères max) |
GAME_REGION | Non | eu | -region |
GAME_MAX_PLAYER | Non | 3 | -maxPlayerCapacity (15 max) |
GAME_SESSION_INVISIBLE | Non | false | -makeSessionInvisible |
GAME_UPDATE | Non | false | Met à jour le serveur au démarrage |
GAME_BETA_VERSION | Non | — | Branche bêta (publictest), avec GAME_UPDATE=true |
USER_ID / GROUP_ID | Non | 7000 | UID/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
- Installer un serveur Sunkenland dédié sous Windows
- Combien de RAM pour un serveur Sunkenland ?
- Meilleur hébergeur Sunkenland 2026
Sources : melle2/sunkenland-ds sur GitHub et Docker Hub, SteamDB — App 2667530.