Installation et Gestion d'un Serveur Minecraft¶
Ce guide vous explique comment installer, configurer et administrer un serveur Minecraft de deux façons : en installation directe (sans Docker) ou via Docker et Docker Compose.
1. Prérequis¶
Avant de commencer, assurez-vous de disposer de :
- Une machine sous Linux (Debian/Ubuntu recommandé)
- Java installé (version selon la cible) :
java -version
| Version Java | Usage recommandé |
|---|---|
| Java 8 | Anciennes versions Minecraft et modpacks 1.7.x |
| Java 17 | Minecraft 1.17 et versions supérieures |
| Java 21 | Minecraft 1.21 et versions supérieures |
- Pour l'installation Docker : Docker et Docker Compose installés — voir Installation Docker
2. Installation sans Docker¶
2.1 Installer Java¶
# Java 8 (modpacks anciens)
sudo apt install openjdk-8-jdk -y
# Java 17 (Minecraft 1.17+)
sudo apt install openjdk-17-jdk -y
# Vérifier l'installation
java -version
2.2 Télécharger et configurer Forge ou Fabric¶
- Téléchargez l'installateur correspondant à votre modpack :
- Forge : https://files.minecraftforge.net/
-
Fabric : https://fabricmc.net/use/
-
Lancez l'installateur et sélectionnez "Installer un serveur".
-
Acceptez le EULA :
sed -i 's/eula=false/eula=true/' eula.txt
- Configurez le serveur via
server.properties(port, difficulté, whitelist, etc.).
2.3 Démarrer le serveur¶
java -Xmx8G -Xms2G -jar server.jar nogui
💡 Ajustez
-Xmx(mémoire max) et-Xms(mémoire initiale) selon les ressources disponibles.
3. Installation avec Docker¶
3.1 Créer le répertoire du projet¶
mkdir -p /opt/docker-compose/minecraft
cd /opt/docker-compose/minecraft
3.2 Choisir une configuration docker-compose.yml¶
Créez le fichier adapté au type de serveur souhaité.
3.2.1 Serveur Forge — GT New Horizons¶
version: "3"
services:
mc:
container_name: GT_New_Horizon
image: itzg/minecraft-server:java8 # Image Java 8 (requis par GTNH)
restart: unless-stopped
stdin_open: true # Permet de saisir des commandes via docker attach
ports:
- 25566:25566 # Port d'écoute du serveur
environment:
MEMORY: 8G # Mémoire allouée au serveur Java
TYPE: "FORGE" # Type de serveur (FORGE pour les modpacks Forge)
EULA: "TRUE" # Acceptation du EULA Minecraft (obligatoire)
VERSION: 1.7.10 # Version de Minecraft ciblée par le modpack
GENERIC_PACK: "https://downloads.gtnewhorizons.com/ServerPacks/GT_New_Horizons_2.7.0_Server_Java_8.zip" # URL du pack serveur à télécharger automatiquement
FORGE_VERSION: "10.13.4.1614" # Version de Forge correspondante
volumes:
- Forge_GTNH:/data # Données du serveur (monde, configs, mods)
volumes:
Forge_GTNH:
3.2.2 Serveur Forge — Ragnamod 7¶
version: "3.8"
services:
mc:
image: itzg/minecraft-server:java17-alpine # Image Java 17 allégée
container_name: Minecraft-Ragnamod-7
restart: unless-stopped
tty: true # Maintient un pseudo-terminal pour la console
stdin_open: true # Permet de saisir des commandes via docker attach
ports:
- "25565:25565" # Port d'écoute du serveur
environment:
EULA: "true" # Acceptation du EULA Minecraft (obligatoire)
TYPE: FORGE # Type de serveur (FORGE pour les modpacks Forge)
VERSION: "1.18.2" # Version de Minecraft ciblée par le modpack
FORGE_VERSION: "40.2.21" # Version de Forge correspondante
INIT_MEMORY: 6G # Mémoire initiale allouée au serveur Java (heap)
MAX_MEMORY: 12G # Mémoire maximale allouée au serveur Java (heap)
volumes:
- Ragnamod-7:/data # Données du serveur (monde, configs, mods)
volumes:
Ragnamod-7:
3.2.3 Serveur Fabric — Prominence II RPG¶
version: '3.8'
services:
mc-prominence-2-rpg:
container_name: prominence
image: itzg/minecraft-server:latest
restart: unless-stopped
ports:
- "25568:25565" # Port dédié à cette instance
environment:
EULA: "TRUE" # Acceptation du EULA Minecraft (obligatoire)
OPS: |-
Batponney
TYPE: "FABRIC" # Type de serveur (FABRIC pour les modpacks Fabric)
VERSION: "1.20.1" # Version de Minecraft ciblée par le modpack
#FABRIC_LAUNCHER_VERSION: "0.16.24" # Décommenter pour forcer une version précise du launcher Fabric
GENERIC_PACK: "https://download944.mediafire.com/..." # URL du pack serveur Prominence II v3.9.0
MEMORY: "8G" # Mémoire allouée au serveur Java
volumes:
- ./data:/data # Données du serveur (monde, configs, mods)
💡 Remplacez l'URL
GENERIC_PACKpar le lien de téléchargement du pack serveur correspondant à la version souhaitée depuis le site officiel du modpack.
3.2.4 Serveur NeoForge — MagicMecanism¶
⚠️ Import manuel requis : MagicMecanism ne dispose pas de pack serveur officiel. Les mods doivent être importés manuellement depuis le client, puis triés pour ne conserver que ceux compatibles côté serveur (les mods client-only comme OptiFine, Sodium, etc. doivent être retirés). Placez les mods sélectionnés dans
./mods/et les fichiers de configuration dans./config/.
version: "3.8"
services:
mc:
container_name: MagicMecanism
image: itzg/minecraft-server:java21 # Image Java 21 (requis pour Minecraft 1.21+)
tty: true
stdin_open: true # Permet de saisir des commandes via docker attach
restart: unless-stopped
ports:
- "25569:25565" # Port dédié à cette instance
environment:
EULA: "TRUE" # Acceptation du EULA Minecraft (obligatoire)
TYPE: NEOFORGE # Type de serveur (NEOFORGE pour les modpacks NeoForge)
VERSION: "1.21.1" # Version de Minecraft ciblée par le modpack
NEOFORGE_VERSION: "21.1.230" # Version de NeoForge correspondante
INIT_MEMORY: 4G # Mémoire initiale allouée au serveur Java (heap)
MAX_MEMORY: 8G # Mémoire maximale allouée au serveur Java (heap)
JVM_OPTS: |
-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
volumes:
- magicmecanism:/data # Données du serveur (monde, world state)
- ./mods:/data/mods # Mods importés manuellement (voir avertissement ci-dessus)
- ./config:/data/config # Fichiers de configuration des mods
volumes:
magicmecanism:
name: magicmecanism
💡 Les options
JVM_OPTSutilisent le garbage collector G1GC, recommandé pour les serveurs Minecraft avec de nombreux mods — elles réduisent les pics de lag et les pauses GC.
3.2.5 Serveur Vanilla¶
version: "3.8"
services:
mc:
container_name: Vanilla_latest
image: itzg/minecraft-server # Image Minecraft Vanilla (dernière version stable)
restart: unless-stopped
tty: true # Maintient un pseudo-terminal pour la console
stdin_open: true # Permet de saisir des commandes via docker attach
ports:
- "25567:25567" # Port personnalisé (évite les conflits avec d'autres instances)
environment:
EULA: "TRUE" # Acceptation du EULA Minecraft (obligatoire)
SERVER_PORT: "25567" # Port d'écoute (doit correspondre au port mappé ci-dessus)
volumes:
- Vanilla:/data # Données du serveur (monde, configs)
volumes:
Vanilla:
▶ 4. Lancer et Gérer le Serveur¶
4.1 Démarrage¶
cd /opt/docker-compose/minecraft
docker-compose up -d
4.2 Vérification¶
docker ps
5. Commandes Utiles¶
| Action | Commande |
|---|---|
| 🔁 Redémarrer le serveur | docker-compose restart |
| ⛔ Arrêter le serveur | docker-compose down |
| 📜 Logs en direct | docker-compose logs -f |
| 🐚 Accès console serveur | docker attach <container_name> |
| 🐚 Accès shell conteneur | docker exec -it <container_name> /bin/bash |
| 🔄 Mettre à jour l'image | docker-compose pull && docker-compose up -d |
| 🧼 Nettoyage complet | docker-compose down -v --rmi all --remove-orphans |
💡 Pour quitter
docker attachsans arrêter le serveur :Ctrl+PpuisCtrl+Q.
6. Administration du Serveur¶
Ces commandes s'exécutent depuis la console du serveur (via docker attach ou directement en mode standalone).
6.1 Commandes de base¶
| Commande | Description |
|---|---|
stop |
Arrête proprement le serveur |
save-all |
Sauvegarde toutes les données du monde |
save-on / save-off |
Active / désactive la sauvegarde automatique |
list |
Affiche les joueurs connectés |
difficulty <peaceful\|easy\|normal\|hard> |
Change la difficulté du serveur |
say <message> |
Envoie un message global à tous les joueurs |
time set <day\|night\|valeur> |
Change l'heure du jeu |
weather <clear\|rain\|thunder> |
Change la météo |
6.2 Gestion des joueurs¶
| Commande | Description |
|---|---|
op <joueur> / deop <joueur> |
Attribue / retire le statut opérateur (admin) |
kick <joueur> [raison] |
Expulse un joueur du serveur |
ban <joueur> [raison] |
Bannit un joueur |
pardon <joueur> |
Lève le bannissement d'un joueur |
whitelist on / whitelist off |
Active / désactive la liste blanche |
whitelist add <joueur> |
Ajoute un joueur à la liste blanche |
whitelist remove <joueur> |
Retire un joueur de la liste blanche |
tp <source> <destination> |
Téléporte un joueur vers un autre joueur |
tp <joueur> <x> <y> <z> |
Téléporte un joueur vers des coordonnées |
6.3 Commandes monde et terrain¶
| Commande | Description |
|---|---|
give <joueur> <objet> [quantité] |
Donne un objet à un joueur |
summon <entité> [x] [y] [z] |
Invoque une entité |
effect give <joueur> <effet> [durée] [amplification] |
Applique un effet de potion |
effect clear <joueur> |
Retire tous les effets d'un joueur |
kill <cible> |
Tue une entité ou un joueur |
fill <x1> <y1> <z1> <x2> <y2> <z2> <bloc> |
Remplit une zone avec un bloc |
clone <x1> <y1> <z1> <x2> <y2> <z2> <dest> |
Copie une zone vers un autre endroit |
setblock <x> <y> <z> <bloc> |
Place un bloc à une position précise |
scoreboard objectives add <nom> <critère> |
Crée un objectif de tableau de score |
6.4 Sélecteurs de cibles¶
| Sélecteur | Cible désignée |
|---|---|
@p |
Joueur le plus proche |
@a |
Tous les joueurs |
@r |
Joueur aléatoire |
@e |
Toutes les entités |
@s |
L'entité qui exécute la commande |
Exemple :
kill @e[type=!minecraft:player]— supprime toutes les entités sauf les joueurs.
7. Connexion au Serveur¶
7.1 Depuis le jeu¶
🎮 Lancez Minecraft, allez dans "Multijoueur" → "Connexion directe" et saisissez :
<IP_PUBLIQUE>:25565
7.2 Ports nécessaires¶
Assurez-vous que les ports suivants sont ouverts dans votre pare-feu et redirigés via votre NAT :
| Instance | Port |
|---|---|
| Ragnamod-7 | 25565 TCP |
| GT New Horizons | 25566 TCP |
| Vanilla | 25567 TCP |
| Prominence II RPG | 25568 TCP |
| MagicMecanism | 25569 TCP |
8. Arborescence des fichiers¶
/opt/docker-compose/minecraft/
└── docker-compose.yml # Fichier Docker principal
# Les données des serveurs sont dans des volumes Docker nommés :
# - Forge_GTNH → GT New Horizons
# - Ragnamod-7 → Ragnamod 7
# - Vanilla → Serveur Vanilla
# - magicmecanism → MagicMecanism (+ montages locaux ./mods et ./config)
# Prominence II RPG utilise un bind mount local :
/opt/docker-compose/Minecraft/Prominence-II-RPG/
├── docker-compose.yml
└── data/ # Données du serveur (monde, configs, mods)
# MagicMecanism nécessite une structure avec les mods triés manuellement :
/opt/docker-compose/Minecraft/magicmecanism/
├── docker-compose.yml
├── mods/ # Mods compatibles serveur (import manuel depuis client)
└── config/ # Fichiers de configuration des mods
9. Conseils Pratiques¶
- Mémoire : allouez au moins 4 Go pour un serveur Vanilla, 8–12 Go pour les modpacks lourds.
- Sauvegardes : exportez régulièrement les volumes Docker (
docker cpoudocker run --volumes-from). - Console : utilisez
docker attachpour accéder à la console et exécuter des commandes sans quitter le conteneur. - Plusieurs instances : utilisez des ports différents pour chaque serveur (25565, 25566, 25567…).
- Modpacks : l'image
itzg/minecraft-serversupporte de nombreux loaders (FORGE, FABRIC, QUILT, etc.) via la variableTYPE.
10. Sécurité¶
- Activez la whitelist (
whitelist on) pour limiter l'accès aux joueurs autorisés. - N'ouvrez que les ports strictement nécessaires dans votre pare-feu (
ufw,iptables). - Désignez un minimum d'opérateurs (
op) — les ops ont un accès total au serveur. - Sauvegardez régulièrement vos volumes pour éviter toute perte de monde.
Conclusion¶
Grâce à Docker, vous pouvez héberger plusieurs instances Minecraft (Vanilla, Forge, Fabric) sur la même machine avec une gestion simplifiée des mises à jour et des sauvegardes. Bonne aventure ! ⛏️🌍