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
- 1 Go de disque libre et 2 Go de RAM
Ce guide installe le serveur dédié officiel de Terraria (version 1.4.5.8) sur Linux : un utilisateur dédié, le serveur, son fichier de réglages (monde, mot de passe, langue), une console qu'on commande depuis le terminal, un service qui démarre le serveur avec la machine et sauvegarde le monde à l'arrêt, le pare-feu, la connexion depuis le jeu et la sauvegarde de nuit. 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 unzip et curl
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. ...
apt install -y unzip curldnf install -y unzip curl... Complete!
dnf install -y unzip curlzypper -n install unzip curl2Créer un utilisateur dédié et télécharger le serveur
Le serveur ne tourne jamais en root : un utilisateur terraria, dont le dossier personnel est /opt/terraria, possède le serveur (server) et les mondes (worlds). 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/terraria/server /opt/terraria/worlds && useradd -r -s /bin/bash -d /opt/terraria terraria && chown -R terraria:terraria /opt/terrariaLe serveur se télécharge sur terraria.org (46 Mo, version 1.4.5.8 au moment de l'écriture). L'archive contient les versions Windows, Mac et Linux ; on ne garde que Linux, et on rend le programme exécutable, l'archive ne le fait pas.
su - terraria -c "cd /opt/terraria && curl -fsSL -o terraria-server.zip https://terraria.org/api/download/pc-dedicated-server/terraria-server-1458.zip && unzip -q -o terraria-server.zip && cp -r 1458/Linux/. server/ && rm -rf 1458 terraria-server.zip && chmod +x server/TerrariaServer.bin.x86_64 && ls server"... TerrariaServer TerrariaServer.bin.x86_64 TerrariaServer.exe WindowsBase.dll ...
3Écrire les réglages du serveur
Le fichier serverconfig.txt porte le monde, le mot de passe demandé aux joueurs, le nombre de places et la langue des messages du serveur. Changez au moins le mot de passe et le nom du monde.
cat > /opt/terraria/serverconfig.txt << 'EOF'
world=/opt/terraria/worlds/MonMonde.wld
autocreate=2
worldname=MonMonde
difficulty=0
port=7777
maxplayers=8
password=cinqcaracteres
motd=Bienvenue sur mon serveur Terraria
language=fr-FR
secure=1
EOF
chown terraria:terraria /opt/terraria/serverconfig.txtworld, worldname- Le fichier du monde et son nom ; un nouveau nom crée un nouveau monde
autocreate=2- Crée le monde s'il n'existe pas : 1 petit, 2 moyen, 3 grand
difficulty=0- 0 classique, 1 expert, 2 maître, 3 aventure (journey)
maxplayers=8- Le nombre de places, de 1 à 255
password- Le mot de passe demandé aux joueurs ; laissez-le : des robots essaient le port 7777 dès la première minute
motd- Le message affiché à l'arrivée d'un joueur
language=fr-FR- La langue des messages du serveur (en-US, de-DE, es-ES, it-IT, pt-BR...)
secure=1- La protection contre la triche
4Donner une console au serveur
Terraria n'écrit le monde sur le disque que sur ordre : la commande save, ou exit qui sauvegarde et quitte. Coupé autrement, il perd tout depuis la dernière sauvegarde. Le script de démarrage lui donne une console qui reste ouverte, le tube nommé /opt/terraria/console.in : tout ce qu'on y écrit arrive au serveur comme si on le tapait devant lui.
cat > /opt/terraria/start.sh << 'EOF'
#!/bin/sh
cd /opt/terraria/server
[ -p /opt/terraria/console.in ] || mkfifo /opt/terraria/console.in
sleep infinity > /opt/terraria/console.in &
exec ./TerrariaServer.bin.x86_64 -config /opt/terraria/serverconfig.txt < /opt/terraria/console.in
EOF
chmod +x /opt/terraria/start.sh && chown terraria:terraria /opt/terraria/start.sh5Démarrer le serveur comme un service
Le service démarre le serveur avec la machine ; sa ligne ExecStop écrit exit dans la console, le serveur sauvegarde et s'arrête. Le premier démarrage génère le monde : environ une minute.
cat > /etc/systemd/system/terraria.service << 'EOF'
[Unit]
Description=Serveur Terraria
After=network.target
[Service]
User=terraria
Group=terraria
WorkingDirectory=/opt/terraria/server
ExecStart=/opt/terraria/start.sh
ExecStop=/bin/sh -c 'echo exit > /opt/terraria/console.in; while kill -0 $MAINPID 2>/dev/null; do sleep 1; done'
TimeoutStopSec=90
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.target
EOFsystemctl daemon-reload && systemctl enable --now terrariaCreated symlink /etc/systemd/system/multi-user.target.wants/terraria.service → /etc/systemd/system/terraria.service.
systemctl is-active terraria && journalctl -u terraria --no-pager | grep -E 'Serveur de Terraria v|Serveur démarré' && ss -ltnp | grep ':7777 'active
... Serveur de Terraria v1.4.5.8
... Serveur de Terraria v1.4.5.8
... : Serveur démarré
LISTEN 0 4096 0.0.0.0:7777 0.0.0.0:* users:(("Main Thread",pid=3782,fd=6))ls -la /opt/terraria/worlds/-rw-r--r-- 1 terraria terraria 6985507 ... MonMonde.wld
6Ouvrir les ports dans le pare-feu
Terraria parle en TCP sur le port 7777. 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 7777/tcp && ufw --force enable... Firewall is active and enabled on system startup
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=7777/tcp && firewall-cmd --reload... success success
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=7777/tcp && firewall-cmd --reload... success success
firewall-cmd --permanent --add-port=7777/tcp && firewall-cmd --reloadsuccess success
7Se connecter au serveur
- Lancez Terraria, choisissez un personnage, puis Multijoueur et Rejoindre via IP.
- Entrez l'adresse IP de votre serveur (203.0.113.42), puis le port 7777.
- Entrez le mot de passe de serverconfig.txt.
8Commander le serveur depuis le terminal
Chaque commande s'écrit dans la console du serveur avec echo ; la réponse arrive dans le journal. Les commandes s'écrivent en anglais même quand le serveur parle français.
echo "say Bonjour à tous" > /opt/terraria/console.in && sleep 2 && journalctl -u terraria --no-pager -n 3... <Server> Bonjour à tous
saveplayingsay Bonjour à tousversionhelpexit9Gérer, sauvegarder et mettre à jour le serveur
systemctl status terrariajournalctl -u terraria -fsystemctl restart terrariasystemctl stop terrariasystemctl stop terraria && journalctl -u terraria --no-pager -n 6 | grep -E 'Enregistrement|Stopped' && systemctl start terraria... : Enregistrement avant de quitter… ... Stopped terraria.service - Serveur Terraria. (« Stopped Serveur Terraria. » sur AlmaLinux, Rocky et CentOS)
Le monde vit dans /opt/terraria/worlds (le serveur y garde aussi deux copies .bak). Le script ci-dessous demande une sauvegarde au serveur, attend qu'elle soit écrite, puis archive les mondes et les réglages ; chaque nuit, il conserve les 10 dernières archives.
cat > /opt/terraria/backup.sh << 'EOF'
#!/bin/sh
BACKUP_DIR=/opt/terraria/backups
DATE=$(date +%Y-%m-%d_%H-%M)
mkdir -p $BACKUP_DIR
echo save > /opt/terraria/console.in
sleep 10
tar -czf $BACKUP_DIR/terraria-$DATE.tar.gz -C /opt/terraria worlds serverconfig.txt
cd $BACKUP_DIR && ls -t | tail -n +11 | xargs -r rm
EOF
chmod +x /opt/terraria/backup.sh && chown terraria:terraria /opt/terraria/backup.shsu - terraria -c '/opt/terraria/backup.sh && ls -la /opt/terraria/backups'-rw-rw-r-- 1 terraria terraria 7871554 ... terraria-2026-09-21_01-00.tar.gz
apt install -y cron && systemctl enable --now crondnf install -y cronie && systemctl enable --now cronddnf install -y cronie && systemctl enable --now crondzypper -n install cronie && systemctl enable --now cronsu - terraria -c '(crontab -l 2>/dev/null; echo "0 4 * * * /opt/terraria/backup.sh") | crontab - && crontab -l'0 4 * * * /opt/terraria/backup.sh
Une mise à jour du jeu, c'est une nouvelle archive sur terraria.org : le numéro dans le nom du fichier change (1458 pour la 1.4.5.8). Serveur arrêté, on remplace le contenu de server ; les mondes et serverconfig.txt ne bougent pas.
systemctl stop terraria && su - terraria -c "cd /opt/terraria && curl -fsSL -o terraria-server.zip https://terraria.org/api/download/pc-dedicated-server/terraria-server-1458.zip && unzip -q -o terraria-server.zip && cp -r 1458/Linux/. server/ && rm -rf 1458 terraria-server.zip && chmod +x server/TerrariaServer.bin.x86_64" && systemctl start terrariaErreurs fréquentes
Le système n'a pas la bibliothèque C standard du serveur (glibc) : c'est le cas d'Alpine. Prenez un des systèmes de ce guide.
L'image du serveur a été construite sur un autre disque et GRUB demande où se réinstaller : choisissez le disque de la machine (celui que lsblk affiche, en général /dev/sda) ; la mise à jour continue ensuite.
Regardez journalctl -u terraria -n 30 : le premier démarrage génère le monde (environ une minute) ; une ligne fausse dans serverconfig.txt s'y lit aussi.
Des robots sondent le port 7777 dès la première minute ; sans le bon mot de passe, ils sont déconnectés. Gardez la ligne password.
Le serveur a été coupé sans exit : vérifiez que le service porte la ligne ExecStop de l'étape 5, et n'arrêtez le serveur que par systemctl stop terraria. Entre-temps, echo save > /opt/terraria/console.in sauvegarde tout de suite.
Port 7777 TCP fermé (étape 6), ou serveur pas encore démarré (« Serveur démarré » dans le journal).
Serveur prêt
Votre serveur Terraria démarre avec la machine, sauvegarde son monde à l'arrêt et chaque nuit, et écoute sur le port 7777. Pour d'autres jeux, voyez les serveurs de jeux.