Factorio Intermédiaire 13 min de lecture

Installer un serveur Factorio headless sous Linux (guide 2.0 / Space Age)

Guide complet pour installer un serveur dédié Factorio headless : téléchargement officiel, --create, --start-server, server-settings.json, port UDP 34197, service systemd et variante Windows.

Installer un serveur Factorio headless sous Linux (guide 2.0 / Space Age)

Installer un serveur Factorio headless sous Linux (guide 2.0 / Space Age)

Wube Software distribue gratuitement une version headless de Factorio : le jeu complet, sans graphismes ni sons, pensé pour tourner sur un serveur. Ce guide couvre l’installation de la version stable 2.0.77 sur Linux, la création de la carte, la configuration server-settings.json, le port réseau et le démarrage automatique avec systemd.

Pas envie de gérer Linux, le pare-feu et les mises à jour ? Louez un serveur Factorio chez HebergTonServ — installation automatique, Ryzen 9 5950X, dès 6,90 €/mois.


Specs techniques à connaître

ÉlémentValeur
Version stable (sept. 2026)2.0.77 (expérimentale : 2.1.x)
Paquet serveurfactorio-headless_linux_<version>.tar.xz
Port34197 UDP (UDP uniquement)
Binairebin/x64/factorio
Config serveurdata/server-settings.example.json → à copier
glibc minimum2.31
Space Ageinclus dans la headless (data/space-age, data/quality, data/elevated-rails)

Source : wiki officiel — Multiplayer et factorio.com/download.


Étape 1 — Créer un utilisateur dédié

Ne lancez jamais le serveur en root :

sudo useradd -m -s /bin/bash factorio

Étape 2 — Télécharger et extraire la version headless

Le lien officiel redirige toujours vers la dernière version stable :

cd /tmp
wget -O factorio-headless.tar.xz https://factorio.com/get-download/stable/headless/linux64
sudo tar -xJf factorio-headless.tar.xz -C /opt
sudo chown -R factorio:factorio /opt/factorio

Le serveur est maintenant dans /opt/factorio. Vérifiez la version :

sudo -u factorio /opt/factorio/bin/x64/factorio --version

Si vous obtenez une erreur GLIBC_2.31 not found, votre distribution est trop ancienne (CentOS 7 par exemple). Passez sur Debian 11+ ou Ubuntu récent.

Étape 3 — Créer la carte

Le serveur headless exige une sauvegarde au démarrage. On la génère avec --create :

sudo su - factorio
cd /opt/factorio
./bin/x64/factorio --create ./saves/mon-usine.zip

Par défaut, --create produit une partie Space Age (l’extension est activée d’office). Pour une partie vanilla jouable par des amis sans l’extension, créez d’abord mods/mod-list.json :

{
  "mods": [
    { "name": "base", "enabled": true },
    { "name": "elevated-rails", "enabled": false },
    { "name": "quality", "enabled": false },
    { "name": "space-age", "enabled": false }
  ]
}

Sur la branche expérimentale 2.1, l’extension comporte un mod supplémentaire recycler : ajoutez-le à la liste avec "enabled": false.

Personnaliser la génération (optionnel)

Copiez les exemples fournis et passez-les à --create :

cp data/map-gen-settings.example.json map-gen-settings.json
cp data/map-settings.example.json map-settings.json
nano map-gen-settings.json   # taille, minerais, falaises, graine...

./bin/x64/factorio --create ./saves/mon-usine.zip \
  --map-gen-settings map-gen-settings.json \
  --map-settings map-settings.json

Vous pouvez aussi fixer la graine avec --map-gen-seed 123456.

Vous avez déjà une partie solo ? Envoyez simplement son .zip dans saves/ : voir transférer une partie solo sur un serveur Factorio.

Étape 4 — Configurer server-settings.json

cp data/server-settings.example.json data/server-settings.json
nano data/server-settings.json

Les clés les plus utiles :

CléRôleExemple
name / descriptionNom et description dans la liste des parties"Usine FR"
visibility.publicListée sur le serveur public de Factoriotrue
visibility.lanVisible en réseau localfalse
username + tokenIdentifiants factorio.com (obligatoires si public: true)token depuis votre profil
game_passwordMot de passe de la partie"secret"
require_user_verificationN’accepte que des comptes factorio.com validestrue
max_playersLimite de joueurs (0 = illimité)10
allow_commandstrue, false ou admins-only"admins-only"
autosave_interval / autosave_slotsFréquence (min) et nombre d’autosaves10 / 5
afk_autokick_intervalKick AFK en minutes (0 = jamais)0
auto_pausePause quand personne n’est connectétrue
only_admins_can_pause_the_gameSeuls les admins peuvent mettre en pausetrue

Préférez le token au mot de passe : le fichier est stocké en clair. Pour un serveur privé, laissez username/token vides et passez public à false.

Étape 5 — Premier lancement

./bin/x64/factorio --start-server ./saves/mon-usine.zip \
  --server-settings ./data/server-settings.json

Ou, pour charger automatiquement la sauvegarde la plus récente (pratique avec les autosaves) :

./bin/x64/factorio --start-server-load-latest \
  --server-settings ./data/server-settings.json

Paramètres réseau utiles :

ParamètreRôle
--port 34197Changer le port du jeu
--bind 0.0.0.0IP (et port) d’écoute
--rcon-port 27015 --rcon-password XXXActiver RCON (administration à distance)
--console-log fichier.logCopie du log serveur

Coupez avec Ctrl+C : le serveur sauvegarde à la fermeture.

Étape 6 — Ouvrir le port 34197 UDP

Factorio n’utilise que l’UDP :

# UFW (Ubuntu/Debian)
sudo ufw allow 34197/udp

# firewalld
sudo firewall-cmd --permanent --add-port=34197/udp
sudo firewall-cmd --reload

Derrière une box, créez une redirection UDP 34197 vers la machine, et vérifiez que le routeur ne randomise pas le port source (problème connu sur certains pfSense).

Étape 7 — Service systemd (démarrage automatique)

Revenez sur votre compte sudo et créez /etc/systemd/system/factorio.service :

[Unit]
Description=Factorio Headless Server
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=factorio
WorkingDirectory=/opt/factorio
ExecStart=/opt/factorio/bin/x64/factorio --start-server-load-latest --server-settings /opt/factorio/data/server-settings.json
Restart=on-failure
KillSignal=SIGINT
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target

KillSignal=SIGINT reproduit un Ctrl+C pour que la partie soit sauvegardée proprement à l’arrêt.

sudo systemctl daemon-reload
sudo systemctl enable --now factorio
sudo journalctl -u factorio -f

Mettre à jour le serveur

Tous les joueurs doivent avoir exactement la même version que le serveur. Pour mettre à jour :

sudo systemctl stop factorio
sudo cp -r /opt/factorio/saves ~/backup-saves-$(date +%F)
cd /tmp && wget -O factorio-headless.tar.xz https://factorio.com/get-download/stable/headless/linux64
sudo tar -xJf factorio-headless.tar.xz -C /opt
sudo chown -R factorio:factorio /opt/factorio
sudo systemctl start factorio

L’extraction écrase les binaires et data/ mais conserve saves/, mods/ et vos fichiers de configuration. Attention : data/server-settings.json se trouve dans data/ — gardez-en une copie avant la mise à jour.


Et sous Windows ?

Il n’existe pas de version headless Windows. Utilisez la version complète du jeu (Steam ou factorio.com) avec un fichier .bat placé dans le dossier d’installation :

start /wait .\bin\x64\factorio.exe --start-server-load-latest --server-settings .\data\server-settings.json

Le dossier d’installation Steam par défaut est C:\Program Files (x86)\Steam\steamapps\common\Factorio. Ouvrez le port 34197 UDP dans le pare-feu Windows.


FAQ

Le serveur dit qu’il ne trouve pas la sauvegarde, c’est normal ?

Oui, au premier essai sans --create. Le serveur headless a toujours besoin d’un fichier .zip : créez-le avec --create ou importez votre partie solo.

Mes amis n’ont pas Space Age, ils ne peuvent pas rejoindre

La partie a été créée avec l’extension activée. Désactivez space-age, quality et elevated-rails dans mods/mod-list.json avant de créer une nouvelle carte. Une partie déjà commencée avec Space Age ne peut pas être « retirée » proprement de l’extension.

Comment devenir admin de mon serveur ?

Depuis la console serveur : /promote VotrePseudo. Le fichier server-adminlist.json est alors créé. Toutes les commandes sont dans notre guide commandes admin Factorio.

La partie est en pause quand je me déconnecte

C’est le comportement par défaut (auto_pause: true). Passez la valeur à false dans server-settings.json.


Conclusion

Votre serveur Factorio headless est en ligne : il ne reste qu’à vous connecter via Multijoueur → Se connecter à une adresse avec IP:34197. Pour ajouter des mods, suivez installer des mods sur un serveur Factorio.

Si vous préférez éviter l’administration Linux, HebergTonServ installe et met à jour votre serveur Factorio automatiquement, avec 4 Go (6,90 €/mois) ou 8 Go de RAM (11,90 €/mois) sur Ryzen 9 5950X.

Pour aller plus loin

Sources : wiki Factorio — Multiplayer, wiki Factorio — Command line parameters, server-settings.example.json (wube/factorio-data), forum officiel — Space Age et serveur headless.