Comment installer un serveur Minecraft sur un VPS Linux : Vanilla, Paper et NeoForge

Comment installer un serveur Minecraft sur un VPS Linux : Vanilla, Paper et NeoForge

01 juillet 2026

Comment installer un serveur Minecraft sur un VPS Linux : Vanilla, Paper et NeoForge

Installer un serveur Minecraft sur un VPS donne un contrôle total sur les fichiers, Java, les ports, les plugins, les mods, les sauvegardes et le redémarrage automatique. L’inconvénient, c’est qu’il faut être précis : une mauvaise version Java, un port déjà utilisé ou un service systemd mal écrit suffit à bloquer le lancement.

Ce guide part d’un VPS Ubuntu ou Debian avec un accès SSH et des droits sudo. Il montre trois installations concrètes : un serveur Minecraft vanilla, un serveur Paper avec un plugin, et un serveur NeoForge avec un mod. Les exemples utilisent des dossiers et des ports séparés pour pouvoir tester sans mélanger les fichiers :

  • Vanilla : /opt/minecraft/vanilla, service minecraft, port 25565
  • Paper : /opt/minecraft/paper, service minecraft-paper, port 25566
  • NeoForge : /opt/minecraft/neoforge, service minecraft-neoforge, port 25567

En production, choisissez plutôt un seul type de serveur et gardez le port 25565. Ne lancez pas les trois en même temps sur un petit VPS : avec -Xmx8G par serveur, trois services peuvent consommer beaucoup de mémoire.

Le 28 juin 2026, le manifest officiel Mojang renvoie Minecraft 26.2 comme dernière version stable, et cette version nécessite Java 25. Pour garder les blocs copiables simples, les exemples ci-dessous partent de 26.2 et de versions explicites pour LuckPerms, NeoForge et spark. Remplacez ces valeurs si vous ciblez une autre version.

1. Installer Java et les outils communs

Connectez-vous à votre VPS en SSH, puis installez Java, curl et jq. curl télécharge les fichiers, et jq lit les réponses JSON des APIs Mojang et Paper.

sudo apt update
sudo apt install -y openjdk-25-jre-headless curl jq ca-certificates
java -version

Si votre distribution ne propose pas encore OpenJDK 25, mettez-la à jour ou installez une distribution Java maintenue pour votre système. Une version Java trop ancienne provoque souvent une erreur avant même la création complète du serveur.

Créez ensuite un utilisateur système dédié et les trois dossiers d’exemple.

id minecraft >/dev/null 2>&1 || sudo useradd --system --home-dir /opt/minecraft --create-home --shell /usr/sbin/nologin minecraft
sudo install -d -o minecraft -g minecraft /opt/minecraft/vanilla /opt/minecraft/paper /opt/minecraft/neoforge

Cette séparation évite de lancer Minecraft en root et limite les dégâts en cas de plugin, mod ou script problématique.

2. Installer un serveur Minecraft vanilla

Vanilla est le serveur officiel Mojang. C’est le meilleur point de départ pour vérifier que Java, le port et le service Linux fonctionnent avant d’ajouter des plugins ou des mods.

cd /opt/minecraft/vanilla

MC_VERSION="26.2"
MANIFEST="https://piston-meta.mojang.com/mc/game/version_manifest_v2.json"
VERSION_URL=$(curl -fsSL "$MANIFEST" | jq -r --arg version "$MC_VERSION" '.versions[] | select(.id == $version) | .url')
sudo curl -fLo server.jar "$(curl -fsSL "$VERSION_URL" | jq -r '.downloads.server.url')"
sudo chown minecraft:minecraft server.jar

Acceptez l’EULA et créez un server.properties minimal. Pour vanilla, on garde le port standard 25565.

cd /opt/minecraft/vanilla

echo "eula=true" | sudo tee eula.txt >/dev/null
sudo tee server.properties >/dev/null <<'EOF'
server-port=25565
motd=Serveur Minecraft Vanilla sur VPS
online-mode=true
view-distance=8
simulation-distance=6
EOF
sudo chown minecraft:minecraft eula.txt server.properties

Faites un premier lancement manuel. Attendez la ligne Done ( dans la console, puis arrêtez avec Ctrl+C.

cd /opt/minecraft/vanilla
sudo -u minecraft java -Xms2G -Xmx8G -jar server.jar nogui

Créez ensuite le service systemd.

sudo tee /etc/systemd/system/minecraft.service >/dev/null <<'EOF'
[Unit]
Description=Minecraft Vanilla server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/vanilla
ExecStart=/usr/bin/java -Xms2G -Xmx8G -jar server.jar nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 130 143
KillSignal=SIGINT
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable minecraft
sudo systemctl start minecraft
sudo systemctl status minecraft --no-pager

Les logs vanilla se consultent avec :

sudo journalctl -u minecraft -f

3. Installer Paper et ajouter un plugin

Paper est une base courante pour les serveurs avec plugins. Dans cet exemple, on télécharge le dernier build Paper disponible pour MC_VERSION, puis on installe le plugin LuckPerms dans le dossier plugins.

Paper demande un User-Agent explicite sur son API. Vous pouvez remplacer [email protected] par votre email d’administration.

cd /opt/minecraft/paper

MC_VERSION="26.2"
USER_AGENT="MinecraftVpsTutorial/1.0 (contact: [email protected])"
PAPER_BUILDS="https://fill.papermc.io/v3/projects/paper/versions/$MC_VERSION/builds"
PAPER_URL=$(curl -fsSL -H "User-Agent: $USER_AGENT" "$PAPER_BUILDS" | jq -r '.[0].downloads["server:default"].url')
sudo curl -fL -H "User-Agent: $USER_AGENT" -o server.jar "$PAPER_URL"
sudo chown minecraft:minecraft server.jar

Créez l’EULA et la configuration. Ici, Paper utilise 25566 pour éviter le conflit avec l’exemple vanilla. Si vous n’utilisez que Paper, vous pouvez remettre server-port=25565.

cd /opt/minecraft/paper

echo "eula=true" | sudo tee eula.txt >/dev/null
sudo tee server.properties >/dev/null <<'EOF'
server-port=25566
motd=Serveur Paper sur VPS
online-mode=true
view-distance=8
simulation-distance=6
EOF
sudo chown minecraft:minecraft eula.txt server.properties

Installez maintenant un plugin Paper. Pour garder la commande lisible, cet exemple utilise une URL directe de LuckPerms hébergée par Modrinth.

cd /opt/minecraft/paper

sudo install -d -o minecraft -g minecraft plugins
LUCKPERMS_URL="https://cdn.modrinth.com/data/Vebnzrzj/versions/MBSY8toc/LuckPerms-Bukkit-5.5.53.jar"
sudo curl -fL -o plugins/LuckPerms.jar "$LUCKPERMS_URL"
sudo chown -R minecraft:minecraft plugins

Lancez Paper une première fois. Dans les logs, vous devez voir Paper démarrer et LuckPerms être chargé.

cd /opt/minecraft/paper
sudo -u minecraft java -Xms2G -Xmx8G -jar server.jar nogui

Après Ctrl+C, créez le service minecraft-paper.

sudo tee /etc/systemd/system/minecraft-paper.service >/dev/null <<'EOF'
[Unit]
Description=Minecraft Paper server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/paper
ExecStart=/usr/bin/java -Xms2G -Xmx8G -jar server.jar nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 130 143
KillSignal=SIGINT
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable minecraft-paper
sudo systemctl start minecraft-paper
sudo systemctl status minecraft-paper --no-pager

Pour suivre Paper en direct :

sudo journalctl -u minecraft-paper -f

4. Installer NeoForge et ajouter un mod

NeoForge sert à lancer des serveurs moddés. L’installation est différente de vanilla et Paper : on télécharge un installer, il génère run.sh, puis le serveur démarre via ce script. L’exemple utilise NeoForge 26.2.0.7-beta, à remplacer si une version plus récente correspond à votre serveur.

cd /opt/minecraft/neoforge

NEOFORGE_VERSION="26.2.0.7-beta"
sudo curl -fLo neoforge-installer.jar "https://maven.neoforged.net/releases/net/neoforged/neoforge/$NEOFORGE_VERSION/neoforge-$NEOFORGE_VERSION-installer.jar"
sudo chown minecraft:minecraft neoforge-installer.jar
sudo -u minecraft java -jar neoforge-installer.jar --installServer
sudo chmod +x run.sh

NeoForge lit les options Java dans user_jvm_args.txt. Mettez la mémoire ici, pas directement dans le service systemd.

cd /opt/minecraft/neoforge

sudo tee user_jvm_args.txt >/dev/null <<'EOF'
-Xms2G
-Xmx8G
EOF
sudo chown minecraft:minecraft user_jvm_args.txt

Créez l’EULA et le fichier server.properties. L’exemple utilise 25567 pour ne pas entrer en conflit avec vanilla ou Paper.

cd /opt/minecraft/neoforge

echo "eula=true" | sudo tee eula.txt >/dev/null
sudo tee server.properties >/dev/null <<'EOF'
server-port=25567
motd=Serveur NeoForge sur VPS
online-mode=true
view-distance=8
simulation-distance=6
EOF
sudo chown minecraft:minecraft eula.txt server.properties

Installez maintenant un mod. L’exemple télécharge spark, un mod de profiling utile pour comprendre les performances du serveur, avec une URL de version explicite pour éviter un bloc API trop long. Sur un vrai serveur moddé, les joueurs doivent généralement avoir le même loader et les mods nécessaires côté client.

cd /opt/minecraft/neoforge

sudo install -d -o minecraft -g minecraft mods
SPARK_URL="https://cdn.modrinth.com/data/l6YH9Als/versions/DdMsOH3O/spark-1.10.173-neoforge.jar"
sudo curl -fL -o mods/spark.jar "$SPARK_URL"
sudo chown -R minecraft:minecraft mods

Lancez NeoForge une première fois avec run.sh. Attendez le démarrage complet, puis arrêtez avec Ctrl+C.

cd /opt/minecraft/neoforge
sudo -u minecraft bash run.sh nogui

Créez enfin le service minecraft-neoforge.

sudo tee /etc/systemd/system/minecraft-neoforge.service >/dev/null <<'EOF'
[Unit]
Description=Minecraft NeoForge server
After=network.target

[Service]
User=minecraft
Group=minecraft
WorkingDirectory=/opt/minecraft/neoforge
ExecStart=/usr/bin/bash /opt/minecraft/neoforge/run.sh nogui
Restart=on-failure
RestartSec=10
SuccessExitStatus=0 130 143
KillSignal=SIGINT
TimeoutStopSec=60

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable minecraft-neoforge
sudo systemctl start minecraft-neoforge
sudo systemctl status minecraft-neoforge --no-pager

Les logs NeoForge se lisent avec :

sudo journalctl -u minecraft-neoforge -f

5. Créer une commande all-in-one start, stop, restart, logs, save et restore

systemctl fonctionne très bien, mais une commande unique est plus pratique au quotidien. Le script suivant crée mcserver, qui sait piloter les trois services d’exemple, créer une sauvegarde et restaurer une archive.

sudo tee /usr/local/bin/mcserver >/dev/null <<'EOF'
#!/usr/bin/env bash
set -euo pipefail

SERVER="${1:-}"
ACTION="${2:-}"

usage() {
  echo "Usage: mcserver {vanilla|paper|neoforge} {start|stop|restart|status|logs|save|restore}"
  echo "Restore: mcserver {vanilla|paper|neoforge} restore /path/to/backup.tar.gz"
}

case "$SERVER" in
  vanilla) SERVICE="minecraft"; SERVER_DIR="vanilla" ;;
  paper) SERVICE="minecraft-paper"; SERVER_DIR="paper" ;;
  neoforge) SERVICE="minecraft-neoforge"; SERVER_DIR="neoforge" ;;
  *)
    usage
    exit 1
    ;;
esac

case "$ACTION" in
  start|stop|restart|status)
    sudo systemctl "$ACTION" "$SERVICE"
    ;;
  logs)
    sudo journalctl -u "$SERVICE" -f
    ;;
  save)
    BACKUP_FILE="$HOME/minecraft-$SERVER-backup-$(date +%F-%H%M%S).tar.gz"
    sudo systemctl stop "$SERVICE"
    sudo tar -czf "$BACKUP_FILE" -C /opt/minecraft "$SERVER_DIR"
    sudo systemctl start "$SERVICE"
    echo "Backup created: $BACKUP_FILE"
    ;;
  restore)
    BACKUP_FILE="${3:-}"
    if [ -z "$BACKUP_FILE" ] || [ ! -f "$BACKUP_FILE" ]; then
      usage
      exit 1
    fi
    ROLLBACK_DIR="/opt/minecraft/${SERVER_DIR}.before-restore-$(date +%F-%H%M%S)"
    sudo systemctl stop "$SERVICE"
    if [ -d "/opt/minecraft/$SERVER_DIR" ]; then
      sudo mv "/opt/minecraft/$SERVER_DIR" "$ROLLBACK_DIR"
    fi
    sudo tar -xzf "$BACKUP_FILE" -C /opt/minecraft
    sudo chown -R minecraft:minecraft "/opt/minecraft/$SERVER_DIR"
    sudo systemctl start "$SERVICE"
    echo "Restored $SERVER from $BACKUP_FILE"
    echo "Previous folder kept at: $ROLLBACK_DIR"
    ;;
  *)
    usage
    exit 1
    ;;
esac
EOF

sudo chmod +x /usr/local/bin/mcserver

Vous pouvez maintenant gérer vos serveurs avec des commandes courtes.

mcserver vanilla start
mcserver vanilla stop
mcserver vanilla restart
mcserver vanilla status
mcserver vanilla logs
mcserver vanilla save
mcserver vanilla restore "$HOME/minecraft-vanilla-backup-2026-07-01-142600.tar.gz"

mcserver paper restart
mcserver paper save
mcserver neoforge logs
mcserver neoforge restore "$HOME/minecraft-neoforge-backup-2026-07-01-142600.tar.gz"

Si vous n’utilisez qu’un seul serveur en production, gardez seulement la ligne correspondante dans le script, ou continuez simplement avec mcserver vanilla restart par exemple. Pour une restauration, remplacez le chemin de l’archive par celui affiché par la commande save.

6. Ouvrir les ports dans le firewall

Si vous testez les trois exemples, ouvrez les trois ports. Si vous ne gardez qu’un serveur, ouvrez uniquement son port. Commencez par ajouter les règles, puis regardez l’état d’UFW.

sudo ufw status
sudo ufw allow OpenSSH
sudo ufw allow 25565/tcp comment "Minecraft Vanilla"
sudo ufw allow 25566/tcp comment "Minecraft Paper"
sudo ufw allow 25567/tcp comment "Minecraft NeoForge"
sudo ufw status

Si UFW est inactif et que vous voulez l’utiliser comme firewall local, activez-le seulement après avoir autorisé l’accès SSH d’administration.

sudo ufw enable

Avec iptables, la règle minimale équivalente ressemble à ceci :

sudo iptables -A INPUT -p tcp -m multiport --dports 25565,25566,25567 -j ACCEPT

Vérifiez aussi le firewall externe de votre fournisseur VPS si un pare-feu réseau est disponible dans son panel.

7. Faire une sauvegarde propre

Le script mcserver gère aussi la sauvegarde. L’action save arrête le service, archive le dossier correspondant, puis redémarre le serveur.

mcserver paper save
mcserver neoforge save

La commande affiche le chemin de l’archive créée, par exemple $HOME/minecraft-paper-backup-2026-07-01-142600.tar.gz. Pour restaurer, donnez ce fichier à l’action restore.

mcserver paper restore "$HOME/minecraft-paper-backup-2026-07-01-142600.tar.gz"
mcserver neoforge restore "$HOME/minecraft-neoforge-backup-2026-07-01-142600.tar.gz"

Pendant une restauration, le dossier actuel est conservé sous /opt/minecraft/<serveur>.before-restore-... avant d’extraire l’archive. Gardez plusieurs archives et testez au moins une restauration. Une sauvegarde jamais restaurée est seulement une hypothèse.

8. Quel type de serveur choisir ?

Vanilla est le choix le plus simple si vous voulez le comportement officiel Minecraft sans plugin ni mod. Paper est le meilleur choix si vous voulez des plugins comme permissions, protection de terrain, économie ou commandes d’administration. NeoForge est à choisir si votre objectif est un serveur moddé, avec des mods installés côté serveur et souvent côté client.

Si vous voulez garder la main sur Linux et appliquer ce tutoriel sur votre propre machine, vous pouvez partir d’une offre VPS BoxToPlay, puis installer le serveur Minecraft qui vous convient. Si vous préférez éviter toute l’administration Linux, les services systemd, les ports et les sauvegardes manuelles, vous pouvez aussi lancer un serveur Minecraft automatiquement avec BoxToPlay. Le panel gère l’installation et les actions courantes, pendant que vous gardez la main sur le gameplay, les plugins et la configuration.

Partager cet article
Rejoignez la discussion
🍪