Rust est l'un des jeux les plus exigeants à héberger : grande carte persistante, milliers d'objets construits par les joueurs, mises à jour obligatoires chaque mois. Ce guide installe un serveur Rust dédié sur un VPS Linux, avec le framework de plugins Oxide (aussi appelé uMod), un démarrage automatique et une procédure de mise à jour.
1. Quel VPS pour Rust
La mémoire est la ressource critique. Elle dépend surtout de la taille de la carte et de la quantité de constructions, qui ne fait qu'augmenter jusqu'au prochain wipe.
| Serveur | Ressources conseillées |
|---|---|
| Petite carte (2 000 à 3 000), groupe d'amis | 4 vCPU, 8 Go de RAM |
| Carte standard (3 500 à 4 000), 50 à 100 joueurs | 4 à 6 vCPU, 16 Go de RAM |
| Grosse communauté, nombreux plugins | 6 vCPU ou plus, 32 Go de RAM |
Le disque compte aussi : le serveur pèse plusieurs dizaines de gigaoctets et charge beaucoup de données au démarrage. Un stockage NVMe réduit nettement le temps de lancement. Voir nos VPS NVMe.
2. Installer SteamCMD
SteamCMD est l'outil en ligne de commande de Valve qui télécharge les serveurs de jeux. Sur Ubuntu 24.04, il se trouve dans le dépôt multiverse et nécessite l'architecture 32 bits :
add-apt-repository -y multiverse
dpkg --add-architecture i386
apt update
apt install -y steamcmd unzip
Acceptez la licence de Steam quand elle s'affiche. Sur Debian 12, activez d'abord la section non-free des dépôts. Créez ensuite l'utilisateur qui fera tourner le serveur :
adduser --disabled-password --gecos "" rust
3. Installer le serveur
su - rust
steamcmd +force_install_dir /home/rust/server +login anonymous +app_update 258550 validate +quit
258550 est l'identifiant Steam du serveur dédié Rust. Le téléchargement fait plusieurs gigaoctets.
4. Script de lancement
Créez /home/rust/server/start.sh :
#!/bin/bash
cd /home/rust/server
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/RustDedicated_Data/Plugins/x86_64
exec ./RustDedicated -batchmode -nographics \
+server.ip 0.0.0.0 +server.port 28015 +server.queryport 28017 \
+rcon.ip 0.0.0.0 +rcon.port 28016 +rcon.password "UN_MOT_DE_PASSE_LONG" +rcon.web 1 \
+server.identity "principal" +server.level "Procedural Map" \
+server.seed 12345 +server.worldsize 3500 +server.maxplayers 100 \
+server.hostname "Mon serveur Rust FR" +server.description "Serveur hébergé en France" \
+server.saveinterval 600
chmod +x /home/rust/server/start.sh
Le seed et le worldsize déterminent la carte : changez de seed pour obtenir une carte différente au prochain wipe. La carte et les sauvegardes du monde sont rangées dans server/principal/, selon le nom donné à server.identity.
5. Service systemd
cat > /etc/systemd/system/rust.service <<'EOF'
[Unit]
Description=Serveur Rust
After=network-online.target
Wants=network-online.target
[Service]
User=rust
WorkingDirectory=/home/rust/server
ExecStart=/home/rust/server/start.sh
Restart=on-failure
RestartSec=30
TimeoutStopSec=120
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now rust
journalctl -u rust -f
Le premier démarrage génère la carte et peut prendre plusieurs minutes. Le serveur est prêt quand le journal indique Server startup complete.
6. Ports
| Port | Protocole | Usage | À ouvrir |
|---|---|---|---|
| 28015 | UDP | Connexion des joueurs | Oui |
| 28017 | UDP | Liste des serveurs | Oui |
| 28016 | TCP | Console à distance (RCON) | Seulement pour votre IP |
| 28082 | TCP | Application Rust+ | Si vous l'utilisez |
ufw allow 28015/udp comment 'Rust jeu'
ufw allow 28017/udp comment 'Rust liste'
ufw allow from VOTRE_IP to any port 28016 proto tcp comment 'Rust RCON'
Connectez-vous à la console avec un outil RCON web ou de bureau, comme RustAdmin. Voir configurer UFW.
7. Installer Oxide (uMod)
Oxide ajoute la prise en charge des plugins : kits, téléportation, gestion des clans, protections. Téléchargez la version Linux d'Oxide pour Rust depuis umod.org, puis décompressez-la dans le dossier du serveur, le serveur arrêté :
systemctl stop rust
cd /home/rust/server
sudo -u rust wget -O oxide.zip "LIEN_DE_LA_VERSION_LINUX_SUR_UMOD"
sudo -u rust unzip -o oxide.zip && rm oxide.zip
systemctl start rust
Au démarrage, Oxide crée le dossier oxide/. Déposez les plugins, des fichiers .cs, dans oxide/plugins/ : ils sont compilés et chargés automatiquement, sans redémarrage. Leur configuration apparaît dans oxide/config/.
8. Mises à jour et wipes
Facepunch publie une mise à jour obligatoire le premier jeudi de chaque mois. Ce jour-là, les clients ne peuvent plus rejoindre un serveur qui n'est pas à jour, et la carte doit être réinitialisée : c'est le « wipe forcé ». Procédure :
systemctl stop rust
sudo -u rust /usr/games/steamcmd +force_install_dir /home/rust/server +login anonymous +app_update 258550 validate +quit
# réinstaller Oxide (étape 7)
# wipe de la carte : supprimer les fichiers .map et .sav de l'identité
sudo -u rust rm -f /home/rust/server/server/principal/*.map /home/rust/server/server/principal/*.sav*
systemctl start rust
Supprimer aussi les fichiers player.blueprints.*.db réinitialise les plans appris par les joueurs, un « blueprint wipe », que beaucoup de serveurs ne font qu'une fois sur deux. Sauvegardez le dossier oxide/data/ si vos plugins y stockent des données à conserver, puis envoyez le tout hors du serveur : voir sauvegardes avec Borg.
La date du prochain wipe forcé, le compte à rebours et l'export vers votre agenda sont sur notre calendrier des wipes Rust.