Déployer un serveur Valheim sur un Droplet DigitalOcean
Exécutez un serveur Valheim privé sur un Droplet DigitalOcean avec SteamCMD, un pare-feu limité, systemd, des sauvegardes de monde et une mise à jour sûre.
Dépôt GitHub ↗Un serveur Valheim dédié est utile quand le monde doit rester disponible après le départ de la personne qui héberge habituellement la partie. Cela reste un serveur Linux. Donnez-lui son propre compte, ouvrez seulement les ports du jeu et copiez le monde avant chaque mise à jour.
Ce guide installe l'outil officiel Valheim Dedicated Server avec SteamCMD sur Ubuntu 24.04. Le service utilise un compte valheim non privilégié et les sauvegardes vivent dans /srv/valheim/saves. Il n'installe ni mods ni panneau web et ne promet pas un nombre donné de joueurs. Ajoutez ces éléments seulement après avoir validé le serveur simple.
Ce guide utilise une connexion Steam directe par IP. Il n'active pas -crossplay. Si votre groupe a besoin du crossplay, arrêtez-vous ici et lisez le manuel livré avec l'outil serveur actuel avant de modifier la ligne de lancement. Le crossplay change le chemin de connexion et demande son propre test joueur.
Valheim Dedicated Server est l'application Steam 896660, un outil séparé avec un dépôt Linux. La fiche actuelle de SteamDB permet de vérifier cette identité. Installez et mettez toutefois à jour le serveur avec SteamCMD, pas avec des fichiers téléchargés ailleurs.
Définir la limite du petit serveur
Commencez avec un Droplet Ubuntu LTS récent dans une région raisonnablement proche des joueurs. Choisissez le plan après avoir vérifié son prix actuel dans le panneau DigitalOcean. Un Droplet de 2 Go est un point de départ raisonnable pour un petit groupe sans mods, pas une garantie de capacité. La taille du monde, les mods, les joueurs simultanés et les autres processus changent ce besoin.
Lors de la création, ajoutez une clé SSH, activez la supervision et les sauvegardes, puis utilisez un tag comme valheim. DigitalOcean recommande VPC, IPv6, supervision et sauvegardes pour un nouveau Droplet. Son guide de configuration explique ces options. Les sauvegardes de Droplet ne remplacent pas une archive de monde que vous avez réellement restaurée.
Créez un pare-feu cloud par tag avant d'inviter qui que ce soit. Autorisez ces règles entrantes :
| Protocole | Port | Source | Rôle |
|---|---|---|---|
| TCP | 22 | Votre IP fixe ou sortie VPN | SSH administrateur seulement |
| UDP | 2456-2457 | Partout | Jeu Valheim et requête serveur |
Gardez le trafic sortant autorisé. N'ajoutez pas TCP 2456 ou une large plage de ports parce qu'un message de forum le conseille. Si vous choisissez plus tard un autre SERVER_PORT, modifiez le pare-feu pour ce port et le port UDP suivant dans la même intervention. SERVER_PUBLIC=0 garde le serveur hors de la liste publique, mais le pare-feu doit toujours permettre aux joueurs de le joindre.
Pour un premier Droplet, suivez cet ordre : créez le Droplet Ubuntu 24.04 LTS avec votre clé SSH et le tag valheim, créez le pare-feu pour ce tag, puis connectez-vous avec ssh en utilisant l'adresse IP affichée par le panneau de contrôle. Gardez cette première session SSH ouverte jusqu'à ce que les vérifications du pare-feu et du service fonctionnent.
Installer le serveur avec un compte dédié
Connectez-vous avec l'administrateur non-root créé avec votre clé SSH. Installez SteamCMD et les paquets d'exécution minimaux, puis créez des dossiers détenus par le compte du jeu. Ubuntu peut demander d'activer le dépôt multiverse avant de proposer steamcmd. Suivez cette indication et vérifiez que la commande existe avant de continuer.
sudo apt-get update
sudo apt-get install -y steamcmd libatomic1 libpulse0
sudo adduser --system --group --home /srv/valheim valheim
sudo install -d -o valheim -g valheim -m 750 /opt/valheim/server /srv/valheim/saves
sudo -u valheim /usr/games/steamcmd \
+@sSteamCmdForcePlatformType linux \
+force_install_dir /opt/valheim/server \
+login anonymous \
+app_update 896660 validate \
+quit
Si SteamCMD refuse l'accès anonyme, arrêtez-vous et suivez le message actuel de Steam avec un compte autorisé à installer l'outil serveur. Ne placez jamais un mot de passe Steam ou un code Steam Guard dans une unité systemd, l'historique du shell ou un fichier du Droplet.
Vérifiez ensuite que le binaire existe et relevez les fichiers installés avant de le démarrer automatiquement.
sudo -u valheim test -x /opt/valheim/server/valheim_server.x86_64
sudo -u valheim find /opt/valheim/server -maxdepth 1 -type f -printf '%f\n' | sort | sed -n '1,40p'
Le dépôt compagnon contient le lanceur, l'unité systemd, la sauvegarde et la mise à jour utilisés ci-dessous. Clonez-le maintenant si vous préférez examiner des fichiers prêts à l'emploi plutôt que les reconstruire depuis l'article.
git clone https://github.com/TylorMayfield/valheim-droplet-server.git /tmp/valheim-droplet-server
Conserver les réglages hors du fichier service
Le mot de passe doit être dans un fichier d'environnement lisible par root, pas dans l'unité ni dans une commande partagée. Utilisez un nom de monde distinct et un mot de passe long. Ne réutilisez pas un mot de passe de compte. Valheim exige au moins cinq caractères, et le mot de passe ne peut pas apparaître dans le nom du serveur. SERVER_PUBLIC=0 retire le serveur de la liste publique. Passez à 1 seulement si vous voulez cette visibilité.
sudo install -d -m 750 /etc/valheim
sudo nano /etc/valheim/server.env
SERVER_NAME="Nom de votre serveur"
WORLD_NAME=votre_monde
SERVER_PASSWORD=remplacez-par-un-mot-de-passe-long-et-unique
SERVER_PORT=2456
SERVER_PUBLIC=0
SAVE_DIR=/srv/valheim/saves
sudo chown root:valheim /etc/valheim/server.env
sudo chmod 640 /etc/valheim/server.env
Créez un petit lanceur. Il lit la configuration depuis l'environnement, définit l'identifiant Steam attendu par le serveur et utilise un répertoire de sauvegarde connu. systemd et les procédures de maintenance futures utilisent ainsi le même chemin de démarrage. Si vous avez cloné le dépôt compagnon, installez sa copie vérifiée au lieu de créer ce fichier à la main.
sudo install -m 750 -o valheim -g valheim /tmp/valheim-droplet-server/scripts/start-valheim.sh /opt/valheim/server/start-valheim.sh
Sinon, créez le fichier avant d'y coller le contenu suivant :
sudo nano /opt/valheim/server/start-valheim.sh
#!/usr/bin/env bash
set -euo pipefail
export SteamAppId=892970
export LD_LIBRARY_PATH="$PWD/linux64:${LD_LIBRARY_PATH:-}"
exec ./valheim_server.x86_64 \
-nographics \
-batchmode \
-name "$SERVER_NAME" \
-port "$SERVER_PORT" \
-world "$WORLD_NAME" \
-password "$SERVER_PASSWORD" \
-public "$SERVER_PUBLIC" \
-savedir "$SAVE_DIR"
sudo chown valheim:valheim /opt/valheim/server/start-valheim.sh
sudo chmod 750 /opt/valheim/server/start-valheim.sh
Exécuter Valheim avec systemd et vérifier les sockets
L'unité donne au jeu une politique de redémarrage contrôlée et un journal unique. Restart=on-failure redémarre après un crash, mais ne masque pas un arrêt volontaire de l'administrateur.
[Unit]
Description=Valheim dedicated server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=valheim
Group=valheim
WorkingDirectory=/opt/valheim/server
EnvironmentFile=/etc/valheim/server.env
ExecStart=/opt/valheim/server/start-valheim.sh
Restart=on-failure
RestartSec=10
TimeoutStopSec=120
LimitNOFILE=100000
KillSignal=SIGINT
[Install]
WantedBy=multi-user.target
Si vous avez cloné le dépôt compagnon, utilisez sudo install -m 644 -o root -g root /tmp/valheim-droplet-server/config/valheim.service /etc/systemd/system/valheim.service au lieu de créer ce fichier à la main. Sinon, créez-le d'abord avec sudo nano /etc/systemd/system/valheim.service.
sudo systemctl daemon-reload
sudo systemctl enable --now valheim
sudo systemctl status valheim --no-pager
sudo journalctl -u valheim -n 80 --no-pager
sudo ss -ulnp | grep -E ':2456|:2457'
Attendez un message de démarrage normal dans le journal avant de demander à un joueur de rejoindre. Puis faites ajouter VOTRE_IP_DROPLET:2456 dans l'écran Rejoindre par IP de Valheim. Un statut systemd vert prouve seulement qu'un processus vit. Une connexion réussie prouve ensemble le pare-feu, le serveur, la version du jeu et le chemin du joueur.
Si le serveur démarre mais qu'aucun joueur ne rejoint, vérifiez d'abord le pare-feu cloud, puis comparez le port de /etc/valheim/server.env avec ss -ulnp. Ne désactivez pas le pare-feu et ne lancez pas le service en root pour contourner une erreur de port.
Sauvegarder et mettre à jour dans deux tâches distinctes
Arrêtez le serveur avant de copier les fichiers du monde. C'est le choix simple et prudent si le groupe accepte quelques minutes de maintenance. Créez une archive locale protégée, inspectez-la, puis copiez-la vers une destination de reprise privée. La commande de sauvegarde compagnon lit le vrai SAVE_DIR depuis /etc/valheim/server.env et redémarre un service qui était actif même si l'archive échoue. Le guide de sauvegarde Minecraft vers Spaces explique la discipline de stockage et de restauration. Adaptez le chemin de stockage à Valheim au lieu d'exécuter son script Minecraft sans modification.
sudo install -m 700 -o root -g root /tmp/valheim-droplet-server/scripts/backup-valheim-world /usr/local/sbin/backup-valheim-world
sudo /usr/local/sbin/backup-valheim-world
Testez une archive dans un dossier vide avant de considérer la sauvegarde terminée. Une restauration testée signifie que les fichiers .db et .fwl attendus sont présents pour le monde à récupérer. Elle ne prouve pas que le monde charge avant le démarrage d'un serveur isolé depuis cette copie.
Pour une mise à jour, annoncez une fenêtre de maintenance, créez l'archive, puis lancez la commande compagnon. Elle arrête un service actif, exécute SteamCMD avec valheim et remet le service en marche si SteamCMD échoue. N'activez pas une mise à jour automatique avant chaque lancement sans avoir décidé comment le groupe gère les écarts de version du jeu et la compatibilité des mods.
sudo install -m 700 -o root -g root /tmp/valheim-droplet-server/scripts/update-valheim-server /usr/local/sbin/update-valheim-server
sudo /usr/local/sbin/update-valheim-server
Ce que cette installation couvre, et ce qu'elle ne couvre pas
| Approche | Bon choix pour | Contrepartie |
|---|---|---|
| Ce serveur Droplet | Un petit groupe qui veut un monde disponible sans le PC d'un joueur | Vous administrez Linux, les mises à jour et les sauvegardes |
| Hébergement local d'un joueur | Une courte session avec tout le monde présent | Le monde s'arrête quand l'hôte part |
| Hébergeur de jeu géré | Des personnes qui ne veulent pas administrer un serveur | Moins de contrôle et une facture propre au fournisseur |
Choisissez ce chemin si votre groupe accepte de traiter le serveur comme un système qui demande des mises à jour et un exercice de reprise. Ne le choisissez pas si personne ne peut prendre ces tâches. Un monde hébergé qui tombe silencieusement après une mise à jour est pire qu'une session locale qui se termine à l'heure.
Questions fréquentes
Quels ports faut-il ouvrir pour Valheim sur un Droplet ?
Avec SERVER_PORT=2456, autorisez UDP 2456 et UDP 2457 dans le pare-feu cloud. Si vous modifiez le port configuré, mettez à jour la règle UDP associée au même moment et vérifiez les sockets après le redémarrage.
Les joueurs ont-ils besoin d'un accès SSH ?
Non. Les joueurs se connectent par les ports UDP Valheim. Limitez SSH à l'IP fixe ou à la sortie VPN de l'administrateur et ne partagez pas cet accès avec les joueurs.
Puis-je ajouter des mods ?
Oui, mais un serveur avec mods est un déploiement distinct. Épinglez les versions compatibles du jeu et des mods, notez chaque fichier ajouté et testez une mise à jour avec une copie du monde avant de modifier le serveur actif.
Les sauvegardes de Droplet suffisent-elles pour un monde Valheim ?
Non. Elles ajoutent une couche de reprise. Gardez une archive de monde séparée, stockez-la en privé et restaurez-en une avant de vous y fier. Les commandes de ce guide et une archive locale ne prouvent pas qu'un joueur peut rejoindre après une panne du fournisseur.
Étapes suivantes
Gardez le serveur simple jusqu'à ce qu'un joueur l'ait rejoint et que vous ayez inspecté une archive. Ajoutez ensuite une sauvegarde planifiée avec une alerte, une fenêtre de mise à jour écrite et une liste des personnes autorisées à administrer le Droplet. C'est bien plus utile qu'un panneau ajouté avant de savoir restaurer le monde.