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, serviceminecraft, port25565 - Paper :
/opt/minecraft/paper, serviceminecraft-paper, port25566 - NeoForge :
/opt/minecraft/neoforge, serviceminecraft-neoforge, port25567
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.
