Valheim Avancé 12 min de lecture

Serveur Valheim avec Docker : installation docker compose (guide 1.0)

Monter un serveur Valheim dans Docker avec l'image communautaire valheim-server : docker compose, variables d'environnement, ports UDP, sauvegardes automatiques, mises à jour, crossplay, BepInEx et piège de la conversion 1.0.

Serveur Valheim avec Docker : installation docker compose (guide 1.0)

Serveur Valheim avec Docker (guide 1.0)

Installer un serveur Valheim « à la main » avec SteamCMD marche très bien — voir notre guide SteamCMD. Mais si vous administrez déjà vos services avec Docker, il existe une image communautaire qui fait beaucoup plus que lancer le serveur : mises à jour automatiques, sauvegardes horaires, redémarrage quotidien, BepInEx en option, et tout le serveur tient dans un seul dossier facile à déplacer.

C’est l’image la plus utilisée pour Valheim, anciennement connue sous le nom lloesche/valheim-server, désormais maintenue sous ghcr.io/community-valheim-tools/valheim-server. Elle est à jour pour la 1.0 Deep North.

⚔️ Pas de machine Linux sous la main ?

Serveur Valheim géré, sans Docker à maintenir

Notre hébergeur Valheim s'occupe des mises à jour et des sauvegardes : dès 7,90 €/mois, Ryzen 9 5950X, Anti-DDoS 5 Tbps et support français 24/7.

Voir les offres Valheim →

Cette image est un projet communautaire, non affilié à Iron Gate. Elle est activement maintenue (dernière activité du dépôt : septembre 2026), mais c’est à vous d’en suivre les évolutions.


Ce que fait l’image pour vous

FonctionComportement par défaut
Installation du serveurTéléchargée depuis Steam au premier démarrage (~1 Go)
Mises à jourVérifiées toutes les 15 minutes, appliquées seulement si aucun joueur n’est connecté
RedémarrageTous les jours à 5 h 10, seulement si le serveur est vide
SauvegardesAu démarrage puis toutes les heures, conservées 3 jours
ConfigurationPar variables d’environnement
DonnéesTout dans le dossier monté sur /config (monde, sauvegardes, listes admin/ban/whitelist)

Configuration requise

Les mainteneurs ont mesuré environ 2,8 Go de RAM consommés par le serveur à vide, et constaté que l’essentiel du travail repose sur un seul thread. Leur recommandation :

  • minimum : 2 cœurs, 4 Go de RAM ;
  • recommandé : 4 cœurs à haute fréquence, 8 Go de RAM.

Mieux vaut peu de cœurs très rapides que beaucoup de cœurs lents. Pour dimensionner selon la taille de votre monde : combien de RAM pour un serveur Valheim ?.


Étape 1 — Préparer les dossiers

mkdir -p $HOME/valheim-server/config/worlds_local $HOME/valheim-server/data
cd $HOME/valheim-server
  • config/ : tout ce qui compte (monde, sauvegardes, adminlist.txt…). C’est ce dossier qu’on sauvegarde et qu’on déplace.
  • data/ : les fichiers du serveur téléchargés depuis Steam. Le monter évite de tout retélécharger à chaque recréation du conteneur.

Vous avez déjà un monde ? Copiez le dossier du monde (format 1.0) dans config/worlds_local/ avant le premier lancement.


Étape 2 — Le fichier d’environnement

Créez valheim.env :

cat > $HOME/valheim-server/valheim.env << 'EOF'
SERVER_NAME=Serveur des Vikings
WORLD_NAME=Midgard
SERVER_PASS=MotDePasseSolide
SERVER_PUBLIC=false
TZ=Europe/Paris
EOF

Les variables essentielles :

VariableDéfautRôle
SERVER_NAMEMy ServerNom affiché dans la liste des serveurs
WORLD_NAMEDedicatedNom du monde = nom du dossier dans worlds_local/
SERVER_PASSsecretMot de passe, 5 caractères minimum
SERVER_PUBLICtrueServeur listé publiquement ou non
SERVER_PORT2456Port UDP de départ
SERVER_ARGS—Arguments supplémentaires (world modifiers, etc.)
CROSSPLAYfalseCrossplay PlayFab (PS5, Switch 2, Xbox…)
TZEtc/UTCFuseau horaire (utile pour les horaires de redémarrage et de sauvegarde)

Deux règles du jeu s’appliquent aussi dans Docker :

  • le mot de passe doit faire au moins 5 caractères, sinon le serveur refuse de démarrer ;
  • il ne doit pas être contenu dans le nom du monde (ni dans la seed) — même conséquence.

TZ est important : les horaires par défaut (redémarrage à 5 h 10, sauvegarde à la 5ᵉ minute de chaque heure) sont interprétés dans ce fuseau. Sans lui, ils sont en UTC.


Étape 3 — Le fichier docker compose

Le projet fournit un docker-compose.yaml officiel :

curl -o $HOME/valheim-server/docker-compose.yaml \
  https://raw.githubusercontent.com/community-valheim-tools/valheim-server-docker/main/docker-compose.yaml

Son contenu :

services:
  valheim:
    image: ghcr.io/community-valheim-tools/valheim-server
    cap_add:
      - sys_nice
    volumes:
      - $HOME/valheim-server/config:/config
      - $HOME/valheim-server/data:/opt/valheim
    ports:
      - "2456-2458:2456-2458/udp"
      - "9001:9001/tcp"
    env_file:
      - $HOME/valheim-server/valheim.env
    restart: always
    stop_grace_period: 2m

Trois lignes méritent une explication :

  • 2456-2458/udp : 2456 et 2457 pour le jeu, 2458 pour le crossplay (et certains mods) ;
  • 9001/tcp : l’interface web de supervision, désactivée par défaut. Si vous ne l’activez pas, supprimez cette ligne plutôt que d’exposer un port inutile ;
  • stop_grace_period: 2m : laisse au serveur le temps de sauvegarder le monde à l’arrêt. Ne le réduisez pas.

cap_add: sys_nice est optionnel : il permet au serveur de s’accorder une priorité CPU plus élevée (sans lui, un avertissement failed to set thread priority apparaît au démarrage).


Étape 4 — Démarrer

cd $HOME/valheim-server
docker compose up -d
docker compose logs -f

Le premier démarrage prend plusieurs minutes (téléchargement du serveur). Attendez la ligne :

Game server connected

Le serveur est alors joignable. Ouvrez les ports 2456-2457 UDP sur votre pare-feu et votre box (et 2458 en crossplay) : ouvrir les ports d’un serveur Valheim.


Administrer le serveur

Les administrateurs

Au premier démarrage, l’image crée config/adminlist.txt. Ajoutez-y l’identifiant de chaque admin au format [Plateforme]_[Identifiant], relevé dans le panneau F2 en jeu ou dans les logs.

L’image propose aussi des variables ADMINLIST_IDS, BANNEDLIST_IDS et PERMITTEDLIST_IDS, mais elles écrasent le contenu des fichiers à chaque démarrage. Choisissez une méthode et tenez-vous-y : soit les variables, soit l’édition des fichiers.

Le détail des trois fichiers : bannir et kicker des joueurs sur un serveur Valheim.

Les world modifiers

Ils passent par SERVER_ARGS, dans le fichier d’environnement :

SERVER_ARGS=-preset hard -modifier raids muchless

Rappel : le -preset en premier, sinon il écrase silencieusement les -modifier. Voir world modifiers Valheim.

Les commandes utiles

docker compose restart          # redémarrer le serveur
docker compose pull && docker compose up -d   # mettre à jour l'image elle-même
docker compose exec valheim supervisorctl restart valheim-backup   # forcer une sauvegarde

Sauvegardes

L’image sauvegarde le dossier worlds_local/ au démarrage puis toutes les heures, dans config/backups/, et supprime les sauvegardes de plus de 3 jours.

VariableDéfautRôle
BACKUPS_CRON5 * * * *Planning (format cron)
BACKUPS_MAX_AGE3Âge maximal en jours
BACKUPS_MAX_COUNT0Nombre maximal (0 = illimité)
BACKUPS_IF_IDLEtrueSauvegarder même sans joueur
BACKUPS_DIRECTORY/config/backupsEmplacement

Deux points spécifiques à la 1.0 :

  • un monde 1.0 est un dossier de nombreux fichiers. Une sauvegarde prise pendant que le serveur écrit pourrait être incohérente : l’image le détecte grâce aux marqueurs de sauvegarde du jeu et réessaie jusqu’à trois fois ;
  • ne placez jamais BACKUPS_DIRECTORY à l’intérieur de worlds_local/ : chaque sauvegarde recopierait toutes les précédentes.

Et surtout : les sauvegardes restent sur la même machine. Copiez-les ailleurs, par exemple avec la variable POST_BACKUP_HOOK (commande exécutée après chaque sauvegarde) : sauvegarder et restaurer un monde Valheim.


⚠️ Le piège de la conversion 1.0 avec PUID/PGID

À la première ouverture d’un monde d’avant la 1.0, le serveur le convertit au nouveau format (un dossier par monde). La conversion est irréversible.

Si vous faites tourner le conteneur avec un utilisateur non root (PUID/PGID différents de 0), les mainteneurs signalent qu’une ancienne version de l’image appliquait de mauvais droits aux nouveaux dossiers de monde. Résultat : le serveur n’arrive plus à ouvrir sa propre sauvegarde, écrit UnauthorizedAccessException dans le log… et continue de tourner sans monde chargé, en paraissant en bonne santé.

Avant de convertir un monde :

  1. faites un docker compose pull pour avoir l’image à jour ;
  2. sauvegardez le monde hors de la machine ;
  3. après le démarrage, cherchez UnauthorizedAccessException dans les logs.

Avec le PUID=0 par défaut, le problème ne se pose pas.


Crossplay

CROSSPLAY=true

Le serveur passe sur le backend PlayFab et ouvre le port 2458 UDP. Les joueurs PS5, Switch 2 et Xbox le rejoignent par code à 6 chiffres, visible dans les logs :

docker compose logs valheim | grep "is active with" | tail -n 1

N’activez pas le crossplay si tous vos joueurs sont sur Steam : certains mods fonctionnent mal, ou pas du tout, avec lui. Détails : activer le crossplay sur un serveur Valheim.


Mods BepInEx

BEPINEX=true

Au premier démarrage, BepInEx crée config/bepinex/. Les plugins vont dans config/bepinex/plugins/ : l’image les synchronise vers le serveur au démarrage et à chaque mise à jour. La synchronisation est à sens unique : un plugin retiré de config/ est aussi retiré du serveur.

⚠️ Avec les mises à jour automatiques, le serveur peut passer à une nouvelle version du jeu pendant la nuit… et vos mods cesser de fonctionner. Sur un serveur moddé, espacez les vérifications, par exemple une fois par jour : UPDATE_CRON=0 6 * * *.

Préparer le modpack : installer un modpack r2modman sur un serveur Valheim.


FAQ

Quelle image Docker utiliser pour un serveur Valheim ?

ghcr.io/community-valheim-tools/valheim-server, la suite de la très populaire lloesche/valheim-server. Elle gère mises à jour, sauvegardes, redémarrages, crossplay et BepInEx.

L’image Docker Valheim est-elle compatible avec la 1.0 ?

Oui, elle est à jour pour la 1.0 Deep North et gère le nouveau format de monde en dossier (y compris pour les sauvegardes). Mettez l’image à jour avant de convertir un ancien monde.

Où sont les sauvegardes du monde dans Docker ?

Dans config/backups/ sur l’hôte (monté sur /config/backups dans le conteneur), au format zip par défaut, conservées 3 jours.

Comment mettre à jour le serveur Valheim dans Docker ?

C’est automatique : l’image vérifie les mises à jour toutes les 15 minutes et les applique quand le serveur est vide. Pour mettre à jour l’image elle-même : docker compose pull && docker compose up -d.

Quels ports ouvrir pour Valheim dans Docker ?

2456-2457 UDP pour le jeu, et 2458 UDP si le crossplay est activé.

Peut-on utiliser Docker sous Windows ?

L’image est prévue pour Linux. Sous Windows, le plus simple reste l’installation SteamCMD classique ou un hébergeur.


Conclusion

Avec l’image communautaire, un serveur Valheim tient dans deux fichiers (valheim.env et docker-compose.yaml) et un dossier (config/) : mises à jour, sauvegardes et redémarrages sont gérés pour vous. Restent trois réflexes : régler TZ, copier les sauvegardes hors de la machine, et mettre l’image à jour avant de convertir un monde d’avant la 1.0.

Vous préférez ne rien maintenir ? Un serveur Valheim HebergTonServ démarre à 7,90 €/mois, avec mises à jour, sauvegardes et support français inclus.

Pour aller plus loin

Sources : community-valheim-tools/valheim-server-docker — README et docker-compose.yaml (variables, sauvegardes, conversion 1.0, configuration requise), guide officiel Iron Gate — A Guide to Dedicated Servers.