Skip to content

Installation et Gestion d'un Serveur 7 Days to Die

Ce guide vous explique comment installer, configurer et administrer un serveur 7 Days to Die à l'aide de Docker et Docker Compose.

7 Days to Die est un jeu de survie sandbox mêlant construction, exploration et combats contre des hordes de zombies dans un monde post-apocalyptique.


1. Prérequis

Avant de commencer, assurez-vous de disposer de :

  • Une machine sous Linux (Debian/Ubuntu recommandé)
  • Docker et Docker Compose installés — voir Installation Docker

2. Installation du Serveur 7 Days to Die

2.1 Créer le répertoire du projet

mkdir -p /opt/docker-compose/7dtd
cd /opt/docker-compose/7dtd

2.2 Créer le fichier docker-compose.yml

version: "3.8"

services:
  7dtd-server:
    image: didstopia/7dtd-server:latest
    container_name: 7dtd-server
    restart: unless-stopped
    ports:
      - "26900-26902:26900-26902/tcp"  # Ports TCP (connexion jeu)
      - "26900-26902:26900-26902/udp"  # Ports UDP (communication en jeu)
      - "8081:8081/tcp"                # Console telnet admin (accès local uniquement)
    environment:
      - SEVEN_DAYS_TO_DIE_SERVER_NAME=${ID_SERVER}           # Nom affiché dans la liste des serveurs
      - SEVEN_DAYS_TO_DIE_SERVER_PASSWORD=${PASSWORD}        # Mot de passe requis pour rejoindre
      - SEVEN_DAYS_TO_DIE_SERVER_PORT=26900                  # Port d'écoute principal
      - SEVEN_DAYS_TO_DIE_SERVER_PUBLIC=FALSE                # FALSE = serveur privé, TRUE = visible publiquement
      - SEVEN_DAYS_TO_DIE_SERVER_WORLD=RWG                   # RWG = monde généré aléatoirement (Random World Generation)
      - SEVEN_DAYS_TO_DIE_SERVER_GAME_MODE=GameModeSurvival  # Mode de jeu (survie avec hordes)
      - SEVEN_DAYS_TO_DIE_SERVER_MAX_PLAYERS=8               # Nombre maximum de joueurs simultanés
      - SEVEN_DAYS_TO_DIE_SERVER_DIFFICULTY=2                # Difficulté : 0=Touriste, 2=Normal, 5=Cauchemar
    volumes:
      - ./7dtd_data:/steamcmd/7dtd                      # Données du serveur (configs, sauvegardes, serverconfig.xml)
      - ./7dtd_logs:/root/.local/share/7DaysToDie       # Journaux du serveur

📌 Note :

  • Définissez vos variables dans un fichier .env :

ID_SERVER="MonServeur7DTD"
PASSWORD="motdepassefort"
* Le répertoire 7dtd_data/ contiendra les sauvegardes et les fichiers de configuration du serveur. * Le répertoire 7dtd_logs/ stockera les journaux du serveur. * N'exposez pas le port 8081 sur Internet — la console telnet n'a pas d'authentification forte. Accès local uniquement ou via tunnel SSH.


3. Configuration du Serveur

La configuration avancée du serveur se fait via les variables d'environnement ou directement dans les fichiers générés dans :

/opt/docker-compose/7dtd/7dtd_data

Principaux paramètres disponibles :

Variable Description Valeur par défaut
SEVEN_DAYS_TO_DIE_SERVER_NAME Nom du serveur affiché en jeu
SEVEN_DAYS_TO_DIE_SERVER_PASSWORD Mot de passe d'accès
SEVEN_DAYS_TO_DIE_SERVER_PORT Port principal du serveur 26900
SEVEN_DAYS_TO_DIE_SERVER_PUBLIC Visibilité publique (TRUE / FALSE) FALSE
SEVEN_DAYS_TO_DIE_SERVER_WORLD Type de monde (RWG = généré aléatoirement) RWG
SEVEN_DAYS_TO_DIE_SERVER_GAME_MODE Mode de jeu (GameModeSurvival, etc.) GameModeSurvival
SEVEN_DAYS_TO_DIE_SERVER_MAX_PLAYERS Nombre maximum de joueurs 8
SEVEN_DAYS_TO_DIE_SERVER_DIFFICULTY Difficulté (0 = Touriste, 5 = Cauchemar) 2

💡 Astuce : Le fichier serverconfig.xml présent dans 7dtd_data/ permet une configuration encore plus fine (seed de la carte, options réseau avancées, etc.).

3.1 Principaux paramètres du serverconfig.xml

Le fichier est généré automatiquement au premier démarrage dans 7dtd_data/. Voici les paramètres les plus utiles à personnaliser :

<!-- Identité du serveur -->
<property name="ServerName"          value="MonServeur7DTD" />
<property name="ServerPassword"      value="motdepassefort" />
<property name="ServerMaxPlayerCount" value="8" />

<!-- Monde -->
<property name="GameWorld"           value="RWG" />           <!-- RWG = monde aléatoire -->
<property name="WorldGenSeed"        value="MaSeed42" />      <!-- Seed fixe pour reproductibilité -->
<property name="WorldGenSize"        value="6144" />           <!-- Taille : 4096, 6144, 8192, 10240 -->

<!-- Gameplay -->
<property name="GameDifficulty"      value="2" />              <!-- 0=Touriste → 5=Cauchemar -->
<property name="DayNightLength"      value="60" />             <!-- Durée d'un jour en minutes réelles -->
<property name="BloodMoonFrequency"  value="7" />              <!-- Horde tous les X jours in-game -->
<property name="BloodMoonRange"      value="0" />              <!-- 0 = horde le jour exact -->

<!-- Console admin (telnet) -->
<property name="TelnetEnabled"       value="true" />
<property name="TelnetPort"          value="8081" />
<property name="TelnetPassword"      value="admin-password-fort" />

⚠️ Modifier serverconfig.xml nécessite un redémarrage du conteneur pour être pris en compte.


4. Lancer et Gérer le Serveur

4.1 Démarrage

cd /opt/docker-compose/7dtd
docker-compose up -d

Premier démarrage : le serveur télécharge les fichiers du jeu via SteamCMD puis génère le monde (selon la taille choisie). Comptez 5 à 15 minutes avant que le serveur soit prêt à accepter des connexions. Suivre la progression avec docker-compose logs -f.

Le serveur est prêt quand les logs affichent :

INF StartGame
INF NET: StartServer

4.2 Vérification

docker ps
docker-compose logs --tail=20

4bis. Console Admin (Telnet)

La console telnet permet d'administrer le serveur en direct (kick, ban, teleport, etc.) sans redémarrer.

telnet localhost 8081

Entrer le mot de passe défini dans TelnetPassword du serverconfig.xml.

Commandes utiles :

Commande Description
listplayers Lister les joueurs connectés
kick <joueur> Expulser un joueur
ban <joueur> <durée> Bannir un joueur (ex. ban add Pseudo 30 days)
teleport <joueur> <x> <y> <z> Téléporter un joueur
say "<message>" Envoyer un message à tous les joueurs
saveworld Sauvegarder le monde immédiatement
shutdown Arrêter proprement le serveur
help Afficher toutes les commandes disponibles

5. Commandes Utiles

Action Commande
🔁 Redémarrer le serveur docker-compose restart
⛔ Arrêter le serveur docker-compose down
📜 Logs en direct docker-compose logs -f
🐚 Accès shell conteneur docker exec -it 7dtd-server /bin/bash
🔄 Mettre à jour l'image docker-compose pull && docker-compose up -d
🧼 Nettoyage complet docker-compose down -v --rmi all --remove-orphans

6. Connexion au Serveur

6.1 Depuis le jeu

🎮 Lancez 7 Days to Die, puis accédez à "Rejoindre un serveur" et ajoutez l'adresse :

<IP_PUBLIQUE>:26900

6.2 Ports nécessaires

Assurez-vous que les ports suivants sont ouverts dans votre pare-feu et redirigés via votre NAT :

  • 26900-26902 TCP/UDP

7. Arborescence des fichiers

/opt/docker-compose/7dtd/
├── docker-compose.yml           # Fichier Docker principal
├── .env                         # Variables d'environnement (ID_SERVER, PASSWORD)
├── 7dtd_data/                   # Données du serveur (configs, saves, serverconfig.xml)
└── 7dtd_logs/                   # Journaux du serveur

8. Conseils Pratiques

  • Sauvegardes : synchronisez 7dtd_data/ avec un cloud ou un autre disque (rsync, rclone, etc.)
  • Mises à jour automatiques : l'image didstopia/7dtd-server applique les mises à jour du jeu à chaque redémarrage du conteneur.
  • Difficulté : ajustez SEVEN_DAYS_TO_DIE_SERVER_DIFFICULTY (0 = Touriste → 5 = Cauchemar) selon vos besoins.
  • Nombre de joueurs : adaptez SEVEN_DAYS_TO_DIE_SERVER_MAX_PLAYERS aux capacités de votre machine.

9. Sécurité

  • Définissez toujours un mot de passe fort (PASSWORD) pour protéger votre serveur.
  • Gardez SEVEN_DAYS_TO_DIE_SERVER_PUBLIC=FALSE si vous souhaitez jouer uniquement en privé.
  • Utilisez un pare-feu (ufw, iptables) pour n'exposer que les ports strictement nécessaires.
  • Sauvegardez régulièrement 7dtd_data/ pour éviter toute perte de progression.

Conclusion

Grâce à Docker, l'installation et la gestion d'un serveur 7 Days to Die sont rapides et modulaires. Vous pouvez maintenant affronter les hordes de zombies avec vos amis, en toute sécurité ! 🧟🔨