Comment héberger un serveur Minecraft sur Debian

Comment héberger un serveur Minecraft sur Debian

Table des matières

Comment héberger un serveur Minecraft sur Debian

Introduction

Héberger son propre serveur Minecraft sur Debian offre un contrôle total sur l'expérience de jeu, les performances et les modifications. Ce guide vous accompagne étape par étape dans l'installation et la configuration d'un serveur Minecraft sur Debian 11/12.

Prérequis

Configuration minimale recommandée

  • RAM : 4 GB minimum (8 GB recommandé pour 10+ joueurs)
  • CPU : 2 cœurs minimum (4 cœurs recommandé)
  • Stockage : 10 GB d'espace libre
  • Connexion : Bande passante stable avec ports ouverts
  • Système : Debian 11 (Bullseye) ou Debian 12 (Bookworm)

Étape 1 : Mise à jour du système

Commencez par mettre à jour votre système Debian pour garantir que tous les paquets sont à jour.

sudo apt update && sudo apt upgrade -y

Étape 2 : Installation de Java

Minecraft nécessite Java pour fonctionner. La version de Java dépend de la version de Minecraft que vous souhaitez installer.

Pour Minecraft 1.20+ (Java 17 ou supérieur)

sudo apt install openjdk-17-jre-headless -y

Pour Minecraft 1.17-1.19 (Java 16 ou 17)

sudo apt install openjdk-17-jre-headless -y

Pour Minecraft 1.12-1.16 (Java 8 ou 11)

sudo apt install openjdk-11-jre-headless -y

Vérifiez l'installation de Java :

java -version

Étape 3 : Création d'un utilisateur dédié

Pour des raisons de sécurité, créez un utilisateur système dédié pour exécuter le serveur Minecraft.

sudo adduser --system --home /opt/minecraft --shell /bin/bash minecraft
sudo mkdir -p /opt/minecraft/server
sudo chown -R minecraft:nogroup /opt/minecraft

Étape 4 : Installation du serveur Minecraft

Option A : Serveur Vanilla (officiel)

Connectez-vous en tant qu'utilisateur minecraft :

sudo su - minecraft
cd /opt/minecraft/server

Téléchargez la dernière version du serveur depuis le site officiel :

wget https://piston-data.mojang.com/v1/objects/[HASH]/server.jar -O minecraft_server.jar

Note : Remplacez [HASH] par le hash actuel disponible sur minecraft.net/download/server

Option B : Serveur Paper (optimisé)

Paper est une version optimisée de Spigot offrant de meilleures performances :

wget https://api.papermc.io/v2/projects/paper/versions/1.20.4/builds/365/downloads/paper-1.20.4-365.jar -O paper_server.jar

Étape 5 : Configuration initiale

Acceptation de l'EULA

Lancez le serveur une première fois pour générer les fichiers de configuration :

java -Xmx1024M -Xms1024M -jar minecraft_server.jar nogui

Le serveur va s'arrêter. Acceptez l'EULA :

sed -i 's/eula=false/eula=true/g' eula.txt

Configuration du serveur

Éditez le fichier server.properties :

nano server.properties

Paramètres importants à configurer :

# Port du serveur (par défaut 25565)
server-port=25565

# Nombre maximum de joueurs
max-players=20

# Mode de jeu (survival, creative, adventure, spectator)
gamemode=survival

# Difficulté (peaceful, easy, normal, hard)
difficulty=normal

# Message d'accueil
motd=Mon Serveur Minecraft sur Debian

# Activer la whitelist
white-list=false

# Distance de rendu en chunks
view-distance=10

# Protection spawn
spawn-protection=16

Étape 6 : Script de démarrage

Créez un script de démarrage pour faciliter la gestion du serveur :

nano /opt/minecraft/server/start.sh

Ajoutez le contenu suivant :

#!/bin/bash
# Script de démarrage du serveur Minecraft

# Configuration de la mémoire
MIN_RAM="1G"
MAX_RAM="4G"

# Nom du jar
JAR_FILE="minecraft_server.jar"

# Démarrage du serveur
java -Xms${MIN_RAM} -Xmx${MAX_RAM} \
     -XX:+UseG1GC \
     -XX:+ParallelRefProcEnabled \
     -XX:MaxGCPauseMillis=200 \
     -XX:+UnlockExperimentalVMOptions \
     -XX:+DisableExplicitGC \
     -XX:+AlwaysPreTouch \
     -XX:G1NewSizePercent=30 \
     -XX:G1MaxNewSizePercent=40 \
     -XX:G1HeapRegionSize=8M \
     -XX:G1ReservePercent=20 \
     -XX:G1HeapWastePercent=5 \
     -XX:G1MixedGCCountTarget=4 \
     -XX:InitiatingHeapOccupancyPercent=15 \
     -XX:G1MixedGCLiveThresholdPercent=90 \
     -XX:G1RSetUpdatingPauseTimePercent=5 \
     -XX:SurvivorRatio=32 \
     -XX:+PerfDisableSharedMem \
     -XX:MaxTenuringThreshold=1 \
     -Dusing.aikars.flags=https://mcflags.emc.gs \
     -Daikars.new.flags=true \
     -jar ${JAR_FILE} nogui

Rendez le script exécutable :

chmod +x /opt/minecraft/server/start.sh

Étape 7 : Service systemd

Créez un service systemd pour gérer automatiquement le serveur :

sudo nano /etc/systemd/system/minecraft.service

Contenu du fichier :

[Unit]
Description=Serveur Minecraft
After=network.target

[Service]
Type=simple
User=minecraft
Group=nogroup
WorkingDirectory=/opt/minecraft/server
ExecStart=/opt/minecraft/server/start.sh
ExecStop=/usr/bin/pkill -f minecraft_server.jar
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Activez et démarrez le service :

sudo systemctl daemon-reload
sudo systemctl enable minecraft.service
sudo systemctl start minecraft.service

Étape 8 : Configuration du pare-feu

Avec UFW

sudo ufw allow 25565/tcp
sudo ufw allow 25565/udp

Avec iptables

sudo iptables -A INPUT -p tcp --dport 25565 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 25565 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4

Étape 9 : Commandes de gestion

Commandes systemd essentielles

# Démarrer le serveur
sudo systemctl start minecraft

# Arrêter le serveur
sudo systemctl stop minecraft

# Redémarrer le serveur
sudo systemctl restart minecraft

# Vérifier le statut
sudo systemctl status minecraft

# Voir les logs
sudo journalctl -u minecraft -f

Accès à la console du serveur

Pour interagir avec la console Minecraft, utilisez screen ou tmux :

# Installation de screen
sudo apt install screen -y

# Modifier le script de démarrage pour utiliser screen
nano /opt/minecraft/server/start.sh

Version modifiée avec screen :

#!/bin/bash
screen -dmS minecraft java -Xms1G -Xmx4G -jar minecraft_server.jar nogui

Accéder à la console :

screen -r minecraft

Détacher de la console : Ctrl+A puis D

Étape 10 : Sauvegardes automatiques

Créez un script de sauvegarde :

sudo nano /opt/minecraft/backup.sh
#!/bin/bash
# Script de sauvegarde Minecraft

BACKUP_DIR="/opt/minecraft/backups"
SERVER_DIR="/opt/minecraft/server"
DATE=$(date +%Y%m%d_%H%M%S)

# Créer le répertoire de sauvegarde
mkdir -p $BACKUP_DIR

# Arrêter le serveur
systemctl stop minecraft

# Créer la sauvegarde
tar -czf $BACKUP_DIR/minecraft_backup_$DATE.tar.gz -C $SERVER_DIR world world_nether world_the_end

# Redémarrer le serveur
systemctl start minecraft

# Supprimer les sauvegardes de plus de 7 jours
find $BACKUP_DIR -type f -mtime +7 -delete

Ajoutez une tâche cron pour les sauvegardes automatiques :

sudo crontab -e

Ajoutez cette ligne pour une sauvegarde quotidienne à 3h du matin :

0 3 * * * /opt/minecraft/backup.sh

Optimisations et conseils

Optimisation de la JVM

Pour de meilleures performances, ajustez les paramètres JVM selon votre RAM disponible :

  • 4GB RAM : -Xms2G -Xmx3G
  • 8GB RAM : -Xms4G -Xmx6G
  • 16GB RAM : -Xms8G -Xmx12G

Monitoring des ressources

Installez htop pour surveiller les ressources :

sudo apt install htop -y

Plugins recommandés (pour Paper/Spigot)

Si vous utilisez Paper ou Spigot, voici quelques plugins essentiels :

  • EssentialsX : Commandes essentielles
  • LuckPerms : Gestion des permissions
  • WorldEdit : Édition du monde
  • WorldGuard : Protection des zones
  • CoreProtect : Système de rollback

Configuration de la whitelist

Pour un serveur privé, activez la whitelist :

# Dans server.properties
white-list=true

# Ajouter des joueurs (depuis la console)
whitelist add NomDuJoueur

Dépannage

Le serveur ne démarre pas

  • Vérifiez les logs : journalctl -u minecraft -n 50
  • Vérifiez la version de Java : java -version
  • Assurez-vous que l'EULA est accepté : cat eula.txt

Problèmes de performance

  • Réduisez la distance de rendu dans server.properties
  • Désactivez les spawners de mobs inutiles
  • Utilisez Paper au lieu du serveur Vanilla
  • Augmentez la RAM allouée

Connexion impossible

  • Vérifiez que le port 25565 est ouvert
  • Vérifiez l'adresse IP du serveur
  • Désactivez temporairement le pare-feu pour tester

Conclusion

Votre serveur Minecraft est maintenant opérationnel sur Debian ! N'oubliez pas de :

  • Effectuer des sauvegardes régulières
  • Maintenir le serveur à jour
  • Surveiller les performances
  • Configurer les permissions appropriées
  • Documenter vos modifications

Pour se connecter au serveur depuis Minecraft, utilisez l'adresse IP de votre serveur Debian et le port configuré (par défaut 25565).

Ressources utiles