Prérequis
- Un serveur sous Ubuntu, Debian, AlmaLinux, Rocky, CentOS, Fedora ou openSUSE : voir nos VPS au Canada
- Une connexion SSH ouverte en root : Se connecter en SSH à votre VPS
- 15 Go de disque libre (le serveur pèse 8,3 Go)
- 4 Go de RAM (le serveur en occupe 750 Mo sans joueur, davantage avec)
Enshrouded n'existe qu'en serveur Windows. Ce guide le fait tourner sous Linux avec GE-Proton, la couche de compatibilité de Steam dans sa version communautaire : un utilisateur dédié, SteamCMD, le serveur (8,3 Go), la bibliothèque Steam que Proton exige, Proton, un service qui démarre avec la machine et arrête le serveur en sauvegardant, les réglages (nom, mots de passe), le pare-feu, la connexion depuis le jeu et la mise à jour. Choisissez votre système ci-dessus. Copiez la commande avec le bouton Copier, collez-la dans votre terminal, et comparez avec le résultat attendu.
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. On met d'abord le système à jour ; sans cela, l'installation 32 bits échoue sur AlmaLinux, Rocky, CentOS et Fedora (conflit avec une bibliothèque plus ancienne), et SteamCMD ne peut pas joindre Steam sur une Fedora fraîche (certificats absents).
apt update && apt upgrade -y... 212 upgraded, 8 newly installed, 0 to remove and 4 not upgraded. (les nombres dépendent de l'âge de l'image)
dnf upgrade -y... Complete!
dnf upgrade -y... Complete!
zypper -n refresh && zypper -n updateAll repositories have been refreshed. ...
dpkg --add-architecture i386 && apt update && apt install -y lib32gcc-s1 lib32stdc++6 curldnf install -y glibc.i686 libstdc++.i686dnf install -y glibc.i686 libstdc++.i686zypper -n install glibc-32bit libstdc++6-32bitopenSUSE 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).
sed -i 's/^GRUB_CMDLINE_LINUX_DEFAULT="/GRUB_CMDLINE_LINUX_DEFAULT="ia32_emulation=1 /' /etc/default/grub && grub2-mkconfig -o /boot/grub2/grub.cfg && rebootgrep -o ia32_emulation=1 /proc/cmdlineia32_emulation=1
Proton a besoin de la bibliothèque Vulkan du système, même sans carte graphique : sans elle, il s'arrête sur « libvulkan.so.1: cannot open shared object file ».
apt install -y libvulkan1dnf install -y vulkan-loaderdnf install -y vulkan-loaderzypper -n install libvulkan12Créer un utilisateur dédié et installer SteamCMD
Le serveur ne tourne jamais en root : un utilisateur enshrouded, dont le dossier personnel est /opt/enshrouded, 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.
mkdir -p /opt/enshrouded/server /opt/enshrouded/steamcmd && useradd -r -s /bin/bash -d /opt/enshrouded enshrouded && chown -R enshrouded:enshrouded /opt/enshroudedsu - enshrouded -c "cd /opt/enshrouded/steamcmd && curl -fsSL https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz | tar zxf - && ls"linux32 steamcmd.sh
3Télécharger le serveur Enshrouded (8,3 Go)
SteamCMD pour Linux sait télécharger une application Windows : l'option @sSteamCmdForcePlatformType windows le lui demande. L'application 2278520 est le serveur dédié Enshrouded, 8,3 Go ; demandée en mode Linux, elle ne livre que 107 Mo de bibliothèques Steam, sans serveur. Comptez une à cinq minutes selon la ligne.
su - enshrouded -c "/opt/enshrouded/steamcmd/steamcmd.sh +@sSteamCmdForcePlatformType windows +force_install_dir /opt/enshrouded/server +login anonymous +app_update 2278520 validate +quit"... Success! App '2278520' fully installed.
ls /opt/enshrouded/server/enshrouded_server.exe && du -sh /opt/enshrouded/server/opt/enshrouded/server/enshrouded_server.exe 8.3G /opt/enshrouded/server
4Installer la bibliothèque Steam que Proton exige
Le serveur parle à Steam (liste des serveurs, connexions des joueurs) à travers Proton, qui cherche la bibliothèque Steam native dans ~/.steam/sdk64/steamclient.so. Sans elle, le serveur s'arrête aussitôt, code 3, et son journal finit sur « Init_Steamworks ». SteamCMD a téléchargé cette bibliothèque à son premier lancement (linux64/steamclient.so) : un lien suffit.
su - enshrouded -c "mkdir -p /opt/enshrouded/.steam/sdk64 && ln -sf /opt/enshrouded/steamcmd/linux64/steamclient.so /opt/enshrouded/.steam/sdk64/steamclient.so && ls -l /opt/enshrouded/.steam/sdk64/"total 0 lrwxrwxrwx 1 enshrouded enshrouded 47 Sep 22 01:54 steamclient.so -> /opt/enshrouded/steamcmd/linux64/steamclient.so
5Installer GE-Proton
Proton est la couche qui fait tourner les programmes Windows dans Steam ; GE-Proton en est une version communautaire utilisable sans le client Steam. La version 10-34 est celle qui fonctionne sur tous les systèmes de ce guide.
su - enshrouded -c "mkdir -p /opt/enshrouded/proton && cd /opt/enshrouded/proton && curl -fsSL https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton10-34/GE-Proton10-34.tar.gz | tar xzf - && ls"GE-Proton10-34
SELinux, en mode strict sur Rocky et CentOS (permissif sur AlmaLinux), refuse à Proton de charger ses fichiers Windows : le service tourne en boucle sans créer le journal du serveur, et /var/log/audit/audit.log montre « denied { execmod } ... comm="wine64" ». On marque le dossier /opt/enshrouded comme contenant des bibliothèques de ce type.
dnf install -y policycoreutils-python-utils && semanage fcontext -a -t textrel_shlib_t '/opt/enshrouded(/.*)?' && restorecon -R /opt/enshrouded6Créer le script de démarrage et le service
Le script donne à Proton les deux dossiers qu'il attend, son environnement Windows (prefix) et un dossier Steam (vide ici), puis lance le serveur. Le service le démarre avec la machine sous l'utilisateur enshrouded. Sa ligne ExecStop envoie le signal d'interruption au processus du serveur, ce qui le fait sauvegarder et se fermer proprement en une seconde ; un arrêt brutal du lanceur Proton laisserait le serveur tourner sans sauvegarder.
mkdir -p /opt/enshrouded/steam /opt/enshrouded/prefix
cat > /opt/enshrouded/start.sh << 'EOF'
#!/bin/sh
export STEAM_COMPAT_CLIENT_INSTALL_PATH=/opt/enshrouded/steam
export STEAM_COMPAT_DATA_PATH=/opt/enshrouded/prefix
cd /opt/enshrouded/server
exec /opt/enshrouded/proton/GE-Proton10-34/proton run ./enshrouded_server.exe
EOF
chmod +x /opt/enshrouded/start.sh && chown -R enshrouded:enshrouded /opt/enshroudedcat > /etc/systemd/system/enshrouded.service << 'EOF'
[Unit]
Description=Serveur Enshrouded
After=network.target
[Service]
User=enshrouded
Group=enshrouded
WorkingDirectory=/opt/enshrouded
ExecStart=/opt/enshrouded/start.sh
ExecStop=/bin/sh -c 'pkill -INT -x enshrouded_serv; while pgrep -x enshrouded_serv >/dev/null; do sleep 1; done'
TimeoutStopSec=120
Restart=on-failure
RestartSec=30
[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload && systemctl enable --now enshroudedCreated symlink /etc/systemd/system/multi-user.target.wants/enshrouded.service → /etc/systemd/system/enshrouded.service.
systemctl is-active enshrouded && grep -h 'Game Version\|connected to Steam\|HostOnline\|LoadEcsScene to Run' /opt/enshrouded/server/logs/enshrouded_server.log && ss -lunp | grep 15637 | awk '{print $4}'active [I 00:00:05,722] Game Version (SVN): 1024233 [I 00:00:06,341] [online] Server connected to Steam successfully [I 00:00:06,499] [Session] 'HostOnline' (up)! [I 00:00:08,657] [game_server] Switching state from LoadEcsScene to Run after 171.03 ms 0.0.0.0:15637
7Régler le serveur : nom, mots de passe, joueurs
Le premier démarrage a créé /opt/enshrouded/server/enshrouded_server.json avec des mots de passe aléatoires pour ses quatre groupes de joueurs (Admin, Friend, Guest, Visitor) : un joueur entre avec le mot de passe du groupe dont il reçoit les droits. Le fichier enshrouded_server_readme.txt, à côté, décrit chaque réglage. On l'édite serveur arrêté.
systemctl stop enshrouded && sed -i 's/"name": "Enshrouded Server"/"name": "Mon serveur Enshrouded"/; s/"password": "Admin[^"]*"/"password": "ChangezMoi"/' /opt/enshrouded/server/enshrouded_server.json && grep -n '"name": "Mon\|ChangezMoi' /opt/enshrouded/server/enshrouded_server.json && systemctl start enshrouded2: "name": "Mon serveur Enshrouded", 56: "password": "ChangezMoi",
name- Le nom affiché dans la liste des serveurs du jeu
slotCount- Le nombre de joueurs, 16 par défaut (de 1 à 16)
queryPort- Le port du serveur, 15637 par défaut (UDP)
userGroups : password- Le mot de passe de chaque groupe (Admin, Friend, Guest, Visitor) ; les joueurs entrent avec celui de leur groupe
userGroups : canKickBan, canAccessInventories, canEditWorld, canEditBase- Les droits du groupe : expulser, ouvrir les coffres, modifier le monde, modifier les bases
gameSettingsPreset et gameSettings- La difficulté (Default, Relaxed, Hard, Survival, décrites dans le readme) et chaque facteur de jeu
systemctl stop enshrouded && nano /opt/enshrouded/server/enshrouded_server.json && systemctl start enshrouded8Gérer et sauvegarder le serveur
Le monde vit dans /opt/enshrouded/server/savegame ; le serveur l'écrit à chaque arrêt du service. L'archive ci-dessous en garde une copie datée avec les réglages.
systemctl status enshroudedjournalctl -u enshrouded -fsystemctl restart enshroudedsystemctl stop enshroudedtail -f /opt/enshrouded/server/logs/enshrouded_server.logsystemctl stop enshrouded && tar -czf /opt/enshrouded/enshrouded-$(date +%F).tar.gz -C /opt/enshrouded/server savegame enshrouded_server.json && systemctl start enshrouded && ls -la /opt/enshrouded/*.tar.gz-rw-r--r-- 1 root root 2946 Sep 22 01:56 /opt/enshrouded/enshrouded-2026-09-22.tar.gz
9Ouvrir les ports dans le pare-feu
Le serveur n'écoute que sur le port 15637 en UDP : le jeu lui-même passe par le réseau de Steam. La commande active le pare-feu du système en gardant SSH autorisé, puis ouvre les ports.
apt install -y ufw && ufw allow 22/tcp && ufw allow 15637/udp && ufw --force enable... Firewall is active and enabled on system startup
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=15637/udp && firewall-cmd --reload... success success
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=15637/udp && firewall-cmd --reload... success success
firewall-cmd --permanent --add-port=15637/udp && firewall-cmd --reloadsuccess success
ufw statusStatus: active 22/tcp ALLOW Anywhere 15637/udp ALLOW Anywhere
firewall-cmd --list-ports15637/udp
firewall-cmd --list-ports15637/udp
firewall-cmd --list-ports15637/udp
10Se connecter au serveur
- Lancez Enshrouded, puis ouvrez la liste des serveurs (menu Join) : elle affiche le nom donné dans enshrouded_server.json (Mon serveur Enshrouded).
- Entrez le mot de passe du groupe : ChangezMoi pour entrer comme Admin, ou celui d'un autre groupe pour vos joueurs (grep password /opt/enshrouded/server/enshrouded_server.json les affiche).
- Le serveur n'apparaît dans la liste qu'après « HostOnline » dans son journal, quelques secondes après le lancement.
11Mettre à jour le serveur
Après une mise à jour du jeu, mettez le serveur à jour : la même commande que l'installation, serveur arrêté. Le monde et enshrouded_server.json ne font pas partie du téléchargement, ils restent.
systemctl stop enshrouded && su - enshrouded -c "/opt/enshrouded/steamcmd/steamcmd.sh +@sSteamCmdForcePlatformType windows +force_install_dir /opt/enshrouded/server +login anonymous +app_update 2278520 validate +quit" && systemctl start enshrouded... Success! App '2278520' fully installed.
Erreurs fréquentes
Un raté passager côté Steam : relancez la même commande, le téléchargement reprend.
Le système n'a pas été mis à jour avant : faites la première boîte de l'étape 1, puis réessayez.
Les programmes 32 bits sont désactivés dans le noyau : appliquez la dernière boîte de l'étape 1 et redémarrez.
Plusieurs serveurs de jeux tournent sur la même machine, chacun avec son utilisateur, et SteamCMD a déjà créé dix dossiers /tmp/dumps, /tmp/dumps01... /tmp/dumps09 qui appartiennent aux autres : lancez rm -rf /tmp/dumps* en root, puis relancez la commande.
La bibliothèque Vulkan manque : dernière boîte de l'étape 1.
Proton ne trouve pas la bibliothèque Steam native : refaites l'étape 4 (le lien ~/.steam/sdk64/steamclient.so doit exister pour l'utilisateur enshrouded).
SELinux bloque Proton : faites la boîte SELinux de l'étape 5, puis systemctl restart enshrouded.
Message de Proton lancé sans session graphique, sans effet : le serveur démarre derrière.
Message de Proton lancé sans le client Steam, sans effet : le serveur démarre derrière.
Normal sur un serveur dédié, qui n'a ni compte ni sauvegarde en ligne : la ligne « Server connected to Steam successfully » qui suit dit que Steam répond.
Port 15637 UDP fermé (étape 9), ou serveur pas encore en ligne : attendez « HostOnline » dans le journal (dernière boîte de l'étape 6).
Serveur prêt
Votre serveur Enshrouded démarre avec la machine, sauvegarde à chaque arrêt et écoute sur le port 15637. Donnez le nom du serveur et le mot de passe de leur groupe à vos joueurs.