Désactiver le préchargeur
Tutoriels Linux Serveurs de jeux

Installer un serveur Project Zomboid sur Linux (Ubuntu, Debian, AlmaLinux)

Documentation / Tutoriels Linux / Serveurs de jeux / Installer un serveur Project Zomboid sur Linux (Ubuntu, Debian, AlmaLinux)
Mis à jour le 15/09/2026
52 vues
Intermédiaire
25 minutes

Prérequis

Votre serveur :

Ce guide installe le serveur dédié Project Zomboid avec SteamCMD, l'outil de Valve : un utilisateur dédié, le serveur (7 Go, Java compris), la mémoire qu'on lui accorde, un service qui le démarre avec la machine et sauvegarde à l'arrêt, le pare-feu et la connexion depuis le jeu. Choisissez votre système ci-dessus.

1Mettre à jour le système et installer les bibliothèques 32 bits

SteamCMD, l'outil de Valve qui télécharge les serveurs de jeux, est un programme 32 bits : il lui faut les bibliothèques 32 bits du système. Mettez le système à jour d'abord.

Mettre à jour le système
apt update && apt upgrade -y
Résultat attendu
...
212 upgraded, 8 newly installed, 0 to remove and 4 not upgraded.
(les nombres dépendent de l'âge de l'image)
Mettre à jour le système
dnf upgrade -y
Résultat attendu
...
Complete!
Mettre à jour le système
dnf upgrade -y
Résultat attendu
...
Complete!
Mettre à jour le système
zypper -n refresh && zypper -n update
Résultat attendu
All repositories have been refreshed.
...
Installer les bibliothèques 32 bits et curl
dpkg --add-architecture i386 && apt update && apt install -y lib32gcc-s1 lib32stdc++6 curl
Installer les bibliothèques 32 bits
dnf install -y glibc.i686 libstdc++.i686
Installer les bibliothèques 32 bits
dnf install -y glibc.i686 libstdc++.i686
Installer les bibliothèques 32 bits
zypper -n install glibc-32bit libstdc++6-32bit

openSUSE Leap 16 livre son noyau avec l'exécution des programmes 32 bits désactivée : sans cette étape, SteamCMD répond « Exec format error ». On l'active dans GRUB et on redémarre (reconnectez-vous en SSH après une minute).

Activer les programmes 32 bits dans le noyau, puis redémarrer
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="ia32_emulation=1 /' /etc/default/grub && grub2-mkconfig -o /boot/grub2/grub.cfg && reboot
Après le redémarrage : vérifier que l'option est active
grep -o ia32_emulation=1 /proc/cmdline
Résultat attendu
ia32_emulation=1

2Créer un utilisateur dédié et installer SteamCMD

Le serveur ne tourne jamais en root : un utilisateur zomboid, dont le dossier personnel est /opt/zomboid, possède SteamCMD et le serveur. Le dossier est créé avant l'utilisateur : sur Rocky et CentOS, SELinux refuse à useradd de le créer lui-même sous /opt.

Créer les dossiers et l'utilisateur zomboid
mkdir -p /opt/zomboid/server /opt/zomboid/steamcmd && useradd -r -s /bin/bash -d /opt/zomboid zomboid && chown -R zomboid:zomboid /opt/zomboid
Télécharger SteamCMD (en tant que zomboid)
su - zomboid -c "cd /opt/zomboid/steamcmd && curl -fsSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar zxf - && ls"
Résultat attendu
linux32
steamcmd.sh

3Télécharger le serveur Project Zomboid

Le téléchargement fait 7,2 Go, Java compris.

Installer le serveur Project Zomboid
su - zomboid -c "/opt/zomboid/steamcmd/steamcmd.sh +force_install_dir /opt/zomboid/server +login anonymous +app_update 380870 validate +quit"
Résultat attendu
... Success! App '380870' fully installed.
Vérifier
ls /opt/zomboid/server/start-server.sh && du -sh /opt/zomboid/server
Résultat attendu
/opt/zomboid/server/start-server.sh
8.1G	/opt/zomboid/server
(8.9G sur AlmaLinux, Rocky et CentOS)

4Donner la bonne mémoire au serveur

Le serveur est réglé d'usine sur 8 Go de mémoire : sur une machine de 8 Go, il se fait tuer au chargement de la carte. Prenez la boîte qui correspond à votre machine.

Machine de 8 Go et plus : 4 Go pour le serveur
sed -i 's/"-Xmx8g"/"-Xmx4g"/' /opt/zomboid/server/ProjectZomboid64.json && grep Xmx /opt/zomboid/server/ProjectZomboid64.json
Résultat attendu
		"-Xmx4g",
Machine de 4 Go : 2 Go pour le serveur
sed -i 's/"-Xmx8g"/"-Xmx2g"/' /opt/zomboid/server/ProjectZomboid64.json && grep Xmx /opt/zomboid/server/ProjectZomboid64.json
Résultat attendu
		"-Xmx2g",

5Créer le script de démarrage et le service

Le nom du serveur (-servername) nomme aussi ses fichiers de réglages et son monde ; le mot de passe d'administration (-adminpassword) est celui du compte admin dans le jeu. Changez-les. Ne retirez pas la ligne KillSignal=SIGINT du service : c'est elle qui fait sauvegarder à l'arrêt.

Créer start.sh
cat > /opt/zomboid/start.sh << 'EOF'
#!/bin/sh
cd /opt/zomboid/server
exec ./start-server.sh -servername monserveur -adminpassword ChangezMoi -port 16261 -udpport 16262
EOF
chmod +x /opt/zomboid/start.sh && chown -R zomboid:zomboid /opt/zomboid
Créer le service zomboid
cat > /etc/systemd/system/zomboid.service << 'EOF'
[Unit]
Description=Serveur Project Zomboid
After=network.target

[Service]
User=zomboid
Group=zomboid
WorkingDirectory=/opt/zomboid/server
ExecStart=/opt/zomboid/start.sh
KillSignal=SIGINT
TimeoutStopSec=120
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target
EOF
Activer et démarrer le service
systemctl daemon-reload && systemctl enable --now zomboid
Deux minutes plus tard : le serveur est démarré
systemctl is-active zomboid && journalctl -u zomboid --no-pager | grep -c 'SERVER STARTED' && ss -lunp | grep -E ':1626[12] '
Résultat attendu
active
1
UNCONN 0      0            0.0.0.0:16261      0.0.0.0:*    users:(("ProjectZomboid6",pid=39112,fd=37))
UNCONN 0      0            0.0.0.0:16262      0.0.0.0:*    users:(("ProjectZomboid6",pid=39112,fd=38))

6Régler le serveur

Le premier démarrage a créé les fichiers de réglages dans /opt/zomboid/Zomboid/Server : monserveur.ini (le serveur) et monserveur_SandboxVars.lua (les règles du monde : zombies, butin, saisons). On les édite serveur arrêté.

monserveur.ini : PublicName
Le nom affiché dans la liste des serveurs (My PZ Server par défaut)
monserveur.ini : Password
Le mot de passe demandé aux joueurs (vide = ouvert)
monserveur.ini : MaxPlayers
Le nombre maximal de joueurs (32 par défaut)
monserveur.ini : Public
true pour apparaître dans la liste publique (false par défaut)
monserveur_SandboxVars.lua
Les mêmes réglages de difficulté qu'en solo (population de zombies, butin, électricité, saisons)
Modifier les réglages (Ctrl+O pour enregistrer, Ctrl+X pour quitter), puis relancer
systemctl stop zomboid && nano /opt/zomboid/Zomboid/Server/monserveur.ini && systemctl start zomboid

7Ouvrir les ports dans le pare-feu

Project Zomboid parle en UDP sur les ports 16261 et 16262.

Activer le pare-feu (SSH reste autorisé) et ouvrir les ports du jeu
apt install -y ufw && ufw allow 22/tcp && ufw allow 16261:16262/udp && ufw --force enable
Résultat attendu
...
Firewall is active and enabled on system startup
Activer le pare-feu (SSH reste autorisé) et ouvrir les ports du jeu
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=16261-16262/udp && firewall-cmd --reload
Résultat attendu
...
success
success
Activer le pare-feu (SSH reste autorisé) et ouvrir les ports du jeu
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=16261-16262/udp && firewall-cmd --reload
Résultat attendu
...
success
success
Ouvrir les ports du jeu (firewalld est déjà actif sur openSUSE)
firewall-cmd --permanent --add-port=16261-16262/udp && firewall-cmd --reload
Résultat attendu
success
success

8Se connecter au serveur

  1. Lancez Project Zomboid, puis Rejoindre.
  2. Dans le volet de droite, entrez un nom, l'adresse IP de votre serveur (203.0.113.42) et le port 16261.
  3. Pour jouer avec le compte administrateur : nom d'utilisateur admin, mot de passe celui de start.sh ; sinon, n'importe quel nom et le mot de passe du serveur s'il y en a un.
  4. Cliquez sur Enregistrer, puis sur Rejoindre le serveur.

9Gérer, sauvegarder et mettre à jour le serveur

Voir l'état du service
systemctl status zomboid
Suivre le journal du serveur en direct (Ctrl+C pour sortir)
journalctl -u zomboid -f
Redémarrer
systemctl restart zomboid
Arrêter
systemctl stop zomboid

Le monde vit dans /opt/zomboid/Zomboid/Saves/Multiplayer/monserveur et les réglages dans /opt/zomboid/Zomboid/Server ; le script ci-dessous en garde une archive datée chaque nuit et conserve les 10 dernières.

Créer le script de sauvegarde
cat > /opt/zomboid/backup.sh << 'EOF'
#!/bin/sh
BACKUP_DIR=/opt/zomboid/backups
DATE=$(date +%Y-%m-%d_%H-%M)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/zomboid-$DATE.tar.gz -C /opt/zomboid/Zomboid Saves Server
cd $BACKUP_DIR && ls -t | tail -n +11 | xargs -r rm
EOF
chmod +x /opt/zomboid/backup.sh && chown zomboid:zomboid /opt/zomboid/backup.sh
Tester une sauvegarde tout de suite
su - zomboid -c '/opt/zomboid/backup.sh && ls -la /opt/zomboid/backups'
Résultat attendu
-rw-rw-r-- 1 zomboid zomboid 887850 ... zomboid-2026-09-15_05-13.tar.gz
Installer et démarrer cron
apt install -y cron && systemctl enable --now cron
Installer et démarrer cron
dnf install -y cronie && systemctl enable --now crond
Installer et démarrer cron
dnf install -y cronie && systemctl enable --now crond
Installer et démarrer cron
zypper -n install cronie && systemctl enable --now cron
Programmer la sauvegarde chaque nuit à 4 h
su - zomboid -c '(crontab -l 2>/dev/null; echo "0 4 * * * /opt/zomboid/backup.sh") | crontab - && crontab -l'
Résultat attendu
0 4 * * * /opt/zomboid/backup.sh

Après une mise à jour du jeu, un serveur en retard refuse les joueurs à jour : la mise à jour est la même commande que l'installation, serveur arrêté. Refaites ensuite l'étape 4 si ProjectZomboid64.json a été remplacé (grep Xmx le dit).

Mettre à jour le serveur (serveur arrêté, puis relancé)
systemctl stop zomboid && su - zomboid -c "/opt/zomboid/steamcmd/steamcmd.sh +force_install_dir /opt/zomboid/server +login anonymous +app_update 380870 +quit" && systemctl start zomboid
Résultat attendu
... Success! App '380870' already up to date.
(« fully installed » quand une mise à jour a été téléchargée)

Erreurs fréquentes

Serveur prêt

Votre serveur Project Zomboid démarre avec la machine, sauvegarde à l'arrêt et chaque nuit, et écoute sur les ports 16261-16262. La même base SteamCMD sert aux autres serveurs de jeux.

💬 Écrivez-nous sur Messenger !