Désactiver le préchargeur
Tutoriels Linux Serveurs de jeux

Installer un serveur FiveM (GTA V) sur Linux (Ubuntu, Debian, AlmaLinux)

Documentation / Tutoriels Linux / Serveurs de jeux / Installer un serveur FiveM (GTA V) sur Linux (Ubuntu, Debian, AlmaLinux)
Mis à jour le 20/09/2026
20 vues
Intermédiaire
25 minutes

Prérequis

Votre serveur :

FiveM fait tourner des serveurs GTA V modifiés, avec leurs propres scripts et modes de jeu. Ce guide installe le serveur officiel FXServer sur Linux : un utilisateur dédié, le serveur et ses ressources de base, la clé de licence, un service qui le démarre avec la machine, le pare-feu, puis la connexion depuis FiveM. 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 xz et git

Mettre à jour le système
apt update && apt upgrade -y
Résultat attendu
...
212 upgraded, 8 newly installed, 0 to remove and 4 not upgraded.
(les nombres dépendent de l'âge de l'image)
Mettre à jour le système
dnf upgrade -y
Résultat attendu
...
Complete!
Mettre à jour le système
dnf upgrade -y
Résultat attendu
...
Complete!
Mettre à jour le système
zypper -n refresh && zypper -n update
Résultat attendu
All repositories have been refreshed.
...
Installer xz, git et curl
apt install -y xz-utils git curl
Installer xz et git
dnf install -y xz git
Résultat attendu
...
Complete!
Installer xz et git
dnf install -y xz git
Résultat attendu
...
Complete!
Installer xz et git
zypper -n install xz git

2Créer un utilisateur dédié et télécharger le serveur

Le serveur ne tourne jamais en root : un utilisateur fivem, dont le dossier personnel est /opt/fivem, possède le serveur (server) et ses ressources (server-data). Le dossier est créé avant l'utilisateur : sur Rocky et CentOS, SELinux refuse à useradd de le créer lui-même sous /opt.

Créer les dossiers et l'utilisateur fivem
mkdir -p /opt/fivem/server /opt/fivem/server-data && useradd -r -s /bin/bash -d /opt/fivem fivem && chown -R fivem:fivem /opt/fivem

La version ci-dessous est la « LATEST RECOMMENDED » de la page des versions Linux de FXServer au moment de l'écriture ; pour prendre la plus récente, copiez l'adresse de fx.tar.xz sur cette page (runtime.fivem.net/artifacts/fivem/build_proot_linux/master/).

Télécharger et extraire FXServer (en tant que fivem)
su - fivem -c "cd /opt/fivem/server && curl -fsSL -o fx.tar.xz https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/35245-6efb47dff473c0e2a12fb50b08d74c0eb24a50d5/fx.tar.xz && tar xf fx.tar.xz && rm fx.tar.xz && ls"
Résultat attendu
alpine
run.sh
Télécharger les ressources de base (cfx-server-data)
su - fivem -c "git clone -q https://github.com/citizenfx/cfx-server-data.git /opt/fivem/server-data && ls /opt/fivem/server-data/resources"
Résultat attendu
[gamemodes]
[gameplay]
[local]
[managers]
[system]
[test]

3Écrire server.cfg avec votre clé de licence

Remplacez VOTRE_CLE_CFX par la clé créée sur Cfx.re Portal (elle commence par cfxk_) ; changez aussi le nom du serveur. Le fichier n'est lisible que par fivem : la clé y est en clair.

Créer server.cfg
cat > /opt/fivem/server-data/server.cfg << 'EOF'
endpoint_add_tcp "0.0.0.0:30120"
endpoint_add_udp "0.0.0.0:30120"

ensure mapmanager
ensure spawnmanager
ensure basic-gamemode

sv_scriptHookAllowed 0
sets tags "default"
sets locale "fr-CA"
sv_hostname "Mon serveur FiveM"
sets sv_projectName "Mon serveur FiveM"
sets sv_projectDesc "Serveur FiveM sur Linux"

add_ace group.admin command allow
add_ace group.admin command.quit deny
add_principal identifier.fivem:1 group.admin

sv_maxclients 48
set steam_webApiKey ""
sv_licenseKey VOTRE_CLE_CFX
EOF
chown fivem:fivem /opt/fivem/server-data/server.cfg && chmod 600 /opt/fivem/server-data/server.cfg
sv_licenseKey
La clé de licence ; sans elle, le serveur refuse de démarrer
sv_hostname, sv_projectName
Le nom du serveur dans la liste de FiveM
sv_maxclients 48
Le nombre de joueurs
ensure mapmanager, spawnmanager, basic-gamemode
Les ressources de base du dépôt ; ajoutez un ensure par ressource que vous déposez dans server-data/resources
set steam_webApiKey
Une clé Steam Web API (steamcommunity.com/dev/apikey) si vos joueurs s'identifient par Steam ; vide sinon

4Démarrer le serveur comme un service

Le service lance run.sh depuis server-data avec l'utilisateur fivem et le démarre avec la machine. La ligne ExecStart passe par une entrée qui ne se ferme jamais (sleep infinity) : sans elle, le serveur lit la fin de son entrée comme un Ctrl+C et s'arrête aussitôt.

Créer le service fivem
cat > /etc/systemd/system/fivem.service << 'EOF'
[Unit]
Description=Serveur FiveM
After=network.target

[Service]
User=fivem
Group=fivem
WorkingDirectory=/opt/fivem/server-data
ExecStart=/bin/bash -c "sleep infinity | /opt/fivem/server/run.sh +exec server.cfg"
Restart=on-failure
RestartSec=15

[Install]
WantedBy=multi-user.target
EOF
Activer et démarrer le service
systemctl daemon-reload && systemctl enable --now fivem
Résultat attendu
Created symlink /etc/systemd/system/multi-user.target.wants/fivem.service → /etc/systemd/system/fivem.service.
Une minute plus tard : la clé est acceptée et les ressources tournent
systemctl is-active fivem && journalctl -u fivem --no-pager -n 100 | grep -E 'resources|svadhesive|mapmanager'
Résultat attendu
active
[           resources] Scanning resources.
[           resources] Found 19 resources.
[          svadhesive] Authenticating server license key...
[          svadhesive] Server license key authentication succeeded. Welcome!
[    c-scripting-core] Creating script environments for mapmanager
[           resources] Started resource mapmanager
[           resources] Started resource spawnmanager
[   script:mapmanager] Started gametype Freeroam
[           resources] Started resource basic-gamemode
[   script:mapmanager] Started map fivem-map-hipster
[           resources] Started resource fivem-map-hipster
(la carte tirée au sort peut être fivem-map-skater)
Vérifier que le port écoute et que le serveur répond
ss -ltnup | grep 30120 && curl -s http://127.0.0.1:30120/info.json | head -c 120; echo
Résultat attendu
udp   UNCONN 0      0      [::ffff:0.0.0.0]:30120            *:*    users:(("ld-musl-x86_64.",pid=38771,fd=71))
tcp   LISTEN 0      128             0.0.0.0:30120      0.0.0.0:*    users:(("ld-musl-x86_64.",pid=38771,fd=72))
{"enforceSteamAuth":false,"enhancedHostSupport":true,"requestSteamTicket":"unset","resources":["hardcap","spawnmanager","mapmanager"

5Ouvrir les ports dans le pare-feu

FiveM utilise le port 30120 en TCP et en UDP. La commande active le pare-feu du système en gardant SSH autorisé, puis ouvre les ports.

Activer le pare-feu (SSH reste autorisé) et ouvrir les ports du jeu
apt install -y ufw && ufw allow 22/tcp && ufw allow 30120/tcp && ufw allow 30120/udp && ufw --force enable
Résultat attendu
...
Firewall is active and enabled on system startup
Activer le pare-feu (SSH reste autorisé) et ouvrir les ports du jeu
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=30120/tcp --add-port=30120/udp && firewall-cmd --reload
Résultat attendu
...
success
success
Activer le pare-feu (SSH reste autorisé) et ouvrir les ports du jeu
dnf install -y firewalld && systemctl enable --now firewalld && firewall-cmd --permanent --add-port=30120/tcp --add-port=30120/udp && firewall-cmd --reload
Résultat attendu
...
success
success
Ouvrir les ports du jeu (firewalld est déjà actif sur openSUSE)
firewall-cmd --permanent --add-port=30120/tcp --add-port=30120/udp && firewall-cmd --reload
Résultat attendu
success
success

6Se connecter et administrer

  1. Lancez FiveM, appuyez sur F8 pour ouvrir la console.
  2. Tapez : connect 203.0.113.42:30120 (l'adresse IP de votre serveur).

Les commandes d'administration se tapent dans la console du serveur ; la ligne add_principal de server.cfg donne le rôle admin au compte FiveM dont vous mettez l'identifiant à la place de identifier.fivem:1.

Voir les joueurs connectés, depuis le serveur
curl -s http://127.0.0.1:30120/players.json
Résultat attendu
[]
(vide tant que personne n'est connecté)

7Gérer et mettre à jour le serveur

Voir l'état du service
systemctl status fivem
Suivre le journal du serveur en direct (Ctrl+C pour sortir)
journalctl -u fivem -f
Redémarrer
systemctl restart fivem
Arrêter
systemctl stop fivem

Une mise à jour du serveur, c'est un nouveau fx.tar.xz : serveur arrêté, on remplace le contenu de /opt/fivem/server par la nouvelle version « LATEST RECOMMENDED », les ressources et server.cfg ne bougent pas.

Mettre à jour FXServer (serveur arrêté, puis relancé)
systemctl stop fivem && su - fivem -c "cd /opt/fivem/server && rm -rf alpine run.sh && curl -fsSL -o fx.tar.xz https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/35245-6efb47dff473c0e2a12fb50b08d74c0eb24a50d5/fx.tar.xz && tar xf fx.tar.xz && rm fx.tar.xz && ls" && systemctl start fivem
Résultat attendu
alpine
run.sh

Erreurs fréquentes

Serveur prêt

Votre serveur FiveM démarre avec la machine, se relance s'il tombe, et écoute sur le port 30120 avec sa clé authentifiée. Pour d'autres jeux, voyez les serveurs de jeux.

💬 Écrivez-nous sur Messenger !