Serveur de jeu sur VPS avec SteamCMD : ports et systemd
Avec SteamCMD, la version en ligne de commande de Steam, tu installes le serveur dédié de jeux comme Valheim, Palworld et Satisfactory sur un VPS Linux. Tu installes le paquet steamcmd, tu télécharges le serveur avec +login anonymous +app_update et l'App ID du serveur, tu ouvres les ports du jeu dans le pare-feu et tu laisses un service systemd le démarrer et le mettre à jour.
Quand faire tourner toi-même un serveur Steam sur un VPS
Un VPS à toi est logique si tu veux plus qu'un seul serveur : Valheim et Palworld côte à côte, un bot Discord en plus, tes propres scripts, des mods que tu maintiens toi-même, ou simplement apprendre comment ça marche. Tu as un accès root et tu décides de tout toi-même, y compris du moment des mises à jour.
Si tu veux surtout jouer, un serveur de jeu clé en main demande moins de travail : le panneau gère l'installation, les mises à jour et les paramètres. Pour Valheim, tout est expliqué dans Serveur dédié Valheim : le guide complet, et pour Satisfactory dans Configurer un serveur dédié Satisfactory.
Quel VPS pour un serveur de jeu Steam ?
Choisis Linux, par exemple Ubuntu 22.04 ou plus récent : la plupart des serveurs Steam ont une version Linux, et il te reste plus de mémoire qu'avec Windows. Pour le CPU, c'est comme pour presque tous les serveurs de jeu : la simulation du monde repose sur un seul thread principal, donc un cœur rapide compte plus que beaucoup de cœurs. C'est pourquoi le VPS Premium avec Ryzen 9 convient bien ici : AMD Ryzen 9 9950X*, DDR5 et NVMe. Pour la mémoire, nous utilisons ces minimums, avec environ 1 Go en plus pour le système d'exploitation :
| Jeu | Mémoire pour le serveur | VPS Premium | Par mois |
|---|---|---|---|
| Valheim (jusqu'à 4 joueurs) | dès 4 Go, dès 5 joueurs 1–2 Go en plus | 4 vCores, 8 Go | 15,30 € |
| Palworld | 12–16 Go | 6 vCores, 16 ou 20 Go | 28,00 € / 33,60 € |
| Rust | dès 12 Go | 6 vCores, 16 Go | 28,00 € |
Un petit serveur Valheim pour un groupe fixe peut aussi tourner sur le VPS KVM sur EPYC : 4 vCores et 8 Go y coûtent 9,50 € par mois. L'EPYC 7443P monte jusqu'à 4,0 GHz, donc moins par cœur que le Ryzen ; tu le remarques surtout quand le monde et le nombre de joueurs grandissent. Si tu fais tourner plus d'un jeu, additionne la mémoire ; comment t'y prendre, c'est expliqué dans Plusieurs serveurs de jeu sur un seul VPS. Pour savoir combien de mémoire Palworld demande vraiment, lis De combien de RAM ton serveur Palworld a-t-il besoin ?
* ou AMD Ryzen 9 7950X3D, selon le nœud.
Installer SteamCMD sur Ubuntu
SteamCMD se trouve dans le dépôt multiverse d'Ubuntu et a besoin de bibliothèques 32 bits. Connecte-toi en SSH et exécute :
sudo add-apt-repository multiverse
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install steamcmdPendant l'installation, le paquet te demande d'accepter la licence de Steam. Le programme se retrouve dans /usr/games/steamcmd. Crée ensuite un utilisateur séparé pour tes serveurs, pour qu'une faille dans un serveur de jeu ne donne pas directement un accès root :
sudo adduser --disabled-password --gecos "" steam
sudo -iu steamTélécharger le serveur avec app_update
Chaque serveur dédié a son propre App ID sur Steam. En tant qu'utilisateur steam, tu télécharges par exemple Valheim comme ceci :
steamcmd +force_install_dir /home/steam/servers/valheim +login anonymous +app_update 896660 validate +quitPlace toujours +force_install_dir avant +login ; dans l'autre sens, SteamCMD affiche un avertissement. Avec +login anonymous, tu télécharges la plupart des serveurs dédiés sans compte Steam, donc ton propre mot de passe n'a pas besoin d'être sur le VPS. validate vérifie tous les fichiers et restaure les fichiers modifiés. Utilise-le lors du premier téléchargement et quand quelque chose semble cassé, pas à chaque mise à jour si tu as toi-même modifié des fichiers dans le dossier du serveur.

| Jeu | App ID du serveur | Serveur Linux |
|---|---|---|
| Valheim | 896660 | oui |
| Palworld | 2394010 | oui |
| Satisfactory | 1690800 | oui |
| Project Zomboid | 380870 | oui |
| Rust | 258550 | oui |
| 7 Days to Die | 294420 | oui |
| Enshrouded | 2278520 | non, Windows uniquement |
| ARK: Survival Ascended | 2430930 | non, Windows uniquement |
Soyons honnêtes sur les serveurs Windows uniquement. Enshrouded et ARK: Survival Ascended n'ont pas de serveur Linux. Tu peux télécharger la version Windows sous Linux avec +@sSteamCmdForcePlatformType windows avant +login et la lancer sous Proton ou Wine, mais ce n'est pas officiellement pris en charge et une mise à jour du jeu peut tout casser du jour au lendemain. Tu préfères la stabilité ? Prends Windows Server (à choisir lors de la commande pour le VPS KVM et le VDS, à installer via le panneau VPS pour le VPS Premium), ou un serveur clé en main comme dans Créer un serveur Enshrouded.
Ports et pare-feu
N'ouvre que les ports utilisés par ton jeu, et toujours SSH en premier, sinon tu te retrouves enfermé dehors :
sudo ufw allow OpenSSH
sudo ufw allow 2456:2457/udp # Valheim : port et port+1
sudo ufw allow 8211/udp # Palworld
sudo ufw allow 7777 # Satisfactory, TCP et UDP
sudo ufw allow 8888/tcp # Satisfactory, depuis la version 1.1
sudo ufw enableSi tu choisis un autre port dans les options de démarrage, adapte la règle en conséquence. Pour verrouiller SSH et le reste du VPS, lis Sécuriser ton VPS : les 30 premières minutes.
Démarrage et mises à jour automatiques avec systemd
Valheim fournit un script de démarrage, start_server.sh, mais selon Iron Gate ce fichier est réinitialisé à chaque mise à jour. Mets donc tes paramètres dans ton propre service, /etc/systemd/system/valheim.service :
[Unit]
Description=Valheim dedicated server
Wants=network-online.target
After=network-online.target
[Service]
User=steam
WorkingDirectory=/home/steam/servers/valheim
Environment=LD_LIBRARY_PATH=/home/steam/servers/valheim/linux64
Environment=SteamAppId=892970
ExecStartPre=/usr/games/steamcmd +force_install_dir /home/steam/servers/valheim +login anonymous +app_update 896660 +quit
ExecStart=/home/steam/servers/valheim/valheim_server.x86_64 -name "Notre monde" -port 2456 -world "Dedicated" -password "choisis-un-truc-long" -public 1
KillSignal=SIGINT
TimeoutStartSec=600
TimeoutStopSec=60
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable --now valheim
journalctl -u valheim -fExecStartPrerécupère d'abord la dernière version à chaque démarrage. C'est nécessaire, car après une mise à jour du jeu, les joueurs ne peuvent souvent se reconnecter que lorsque le serveur tourne sur la même version. Mettre à jour revient alors àsudo systemctl restart valheim;TimeoutStartSec=600laisse le temps à une grosse mise à jour.KillSignal=SIGINTarrête le serveur comme Ctrl+C dans la console : la méthode d'arrêt que recommande Iron Gate elle-même.TimeoutStopSec=60lui laisse une minute pour s'arrêter proprement.Restart=on-failurele relance après un crash, etenablefait en sorte qu'il démarre tout seul après un redémarrage du VPS.
Le mot de passe doit faire au moins 5 caractères et ne doit pas figurer dans le nom du serveur, sinon Valheim ne démarre pas. Pour Palworld, tu construis le service de la même façon, avec PalServer.sh dans le dossier d'installation comme ExecStart et l'App ID 2394010 ; regarde dans la documentation de chaque jeu quelles options de démarrage il accepte. Tu veux un redémarrage à neuf chaque nuit ? Ajoute dans la crontab de root : 0 5 * * * systemctl restart valheim.
Sauvegardes et fichiers de partie : où se trouve ton monde ?
Pour Valheim sous Linux, le monde ne se trouve pas dans le dossier du serveur, mais dans le dossier personnel de l'utilisateur : /home/steam/.config/unity3d/IronGate/Valheim/worlds_local. Valheim fait aussi lui-même des sauvegardes automatiques, mais elles sont sur le même disque. Organise donc toi-même une copie, par exemple chaque nuit avec cron en tant qu'utilisateur steam (crée d'abord ~/backups) :
30 4 * * * tar -czf /home/steam/backups/valheim-$(date +\%F).tar.gz -C /home/steam/.config/unity3d/IronGate/Valheim worlds_localDans une crontab, le signe pourcentage doit être précédé d'une barre oblique inverse, d'où \%F. Supprime les anciennes archives, par exemple avec find /home/steam/backups -mtime +14 -delete, et copie-les régulièrement vers une autre machine ou ton propre PC, par exemple via SFTP. Une sauvegarde qui ne se trouve que sur le même VPS n'est pas une sauvegarde. Pour d'autres jeux, les fichiers de partie se trouvent ailleurs ; vérifie pour chaque jeu quel dossier tu dois garder avant d'effacer ou de réinstaller quoi que ce soit.
Questions fréquentes
Qu'est-ce que SteamCMD ?
SteamCMD est la version en ligne de commande du client Steam de Valve. Tu l'utilises pour télécharger et mettre à jour les serveurs dédiés de jeux Steam, sans environnement graphique. Sur Ubuntu, tu l'installes avec le paquet steamcmd du dépôt multiverse.
Dois-je me connecter avec mon propre compte Steam ?
Pour la plupart des serveurs dédiés, non : avec +login anonymous, tu télécharges entre autres Valheim, Palworld, Satisfactory et Rust sans compte. Ainsi, aucun mot de passe de ton propre compte Steam n'a besoin de se trouver sur le VPS. Si un serveur demande quand même un compte, c'est indiqué dans la documentation de ce jeu.
Quels serveurs de jeu ne tournent pas sous Linux ?
Enshrouded et ARK: Survival Ascended n'ont qu'un serveur Windows. Sous Linux, c'est possible avec Proton ou Wine, mais ce n'est pas officiellement pris en charge et ça peut casser lors d'une mise à jour du jeu. Pour ces jeux, choisis Windows Server sur ton VPS ou un serveur de jeu clé en main.
De combien de mémoire un serveur de jeu Steam a-t-il besoin ?
Ça dépend du jeu. Nous comptons au minimum 4 Go pour Valheim (dès 5 joueurs, 1 à 2 Go en plus), 12 à 16 Go pour Palworld et au minimum 12 Go pour Rust et ARK. Ajoute environ 1 Go pour le système d'exploitation et, avec plusieurs serveurs, additionne la mémoire.