# 🔧 Configuration avancée - NationsGlory 1.6.4 ## 📝 Fichiers de configuration ### docker-compose.yml Configuration Docker principale. Variables importantes: ```yaml environment: SERVER_PORT: "25565" # Port du serveur Minecraft RCON_PORT: "25575" # Port RCON (administration) RCON_PASSWORD: "minecraft" # ⚠️ À CHANGER pour la sécurité ONLINE_MODE: "FALSE" # Accepte les comptes crack GAMEMODE: "1" # 0=Survie, 1=Créatif, 2=Aventure LEVEL_TYPE: "FLAT" # Type de monde (FLAT, DEFAULT, LARGEBIOMES) MEMORY: "2G" # RAM maximale INIT_MEMORY: "1G" # RAM initiale ``` ### server.properties Généré automatiquement. Modifications manuelles nécessaires pour: - `online-mode=false` (authentification crack) - `level-type=FLAT` (monde plat) - `gamemode=1` (mode créatif) - `rcon.password=VotreMotDePasse` (mot de passe RCON) ⚠️ **Redémarrez après modification**: `docker-compose restart` --- ## 🔐 Configuration RCON sécurisée ### 1. Définir le mot de passe RCON **Méthode 1: Avant le premier démarrage** ```bash # Éditer server.properties echo "rcon.password=VotreMotDePasseSecurise" >> server.properties echo "enable-rcon=true" >> server.properties ``` **Méthode 2: Serveur en cours (modification dans le conteneur)** ```bash # Modifier directement dans le conteneur docker exec mc-nationsglory sed -i 's/^rcon.password=.*/rcon.password=NouveauMotDePasse/' /data/server.properties # Redémarrer pour appliquer docker-compose restart ``` ### 2. Tester RCON ```bash # Remplacer 192.168.1.252 par votre IP serveur docker exec mc-nationsglory rcon-cli \ --host 192.168.1.252 \ --port 25575 \ --password VotreMotDePasse \ "list" ``` ### 3. Mode interactif ```bash docker exec -it mc-nationsglory rcon-cli \ --host 192.168.1.252 \ --port 25575 \ --password VotreMotDePasse # Dans la console RCON: > list > op JoueurAdmin > save-all > stop ``` --- ## 🌍 Configuration du monde ### Réinitialiser le monde en FLAT ```bash # 1. Arrêter le serveur docker-compose down # 2. Supprimer l'ancien monde sudo rm -rf world world_* # 3. Modifier server.properties sed -i 's/level-type=.*/level-type=FLAT/' server.properties # 4. Redémarrer (génère un nouveau monde FLAT) docker-compose up -d ``` ### Types de mondes disponibles - **FLAT** : Monde plat (idéal construction) - **DEFAULT** : Monde normal avec biomes - **LARGEBIOMES** : Biomes plus grands - **AMPLIFIED** : Relief extrême (nécessite plus de RAM) --- ## 🎮 Gestion des joueurs ### Donner les droits OP **Via RCON:** ```bash docker exec mc-nationsglory rcon-cli \ --host 192.168.1.252 \ --port 25575 \ --password VotreMotDePasse \ "op NomJoueur" ``` **Manuellement:** ```bash # Ajouter au fichier ops.txt echo "NomJoueur" >> ops.txt docker-compose restart ``` ### Bannir/Débannir ```bash # Bannir docker exec mc-nationsglory rcon-cli --host IP --port 25575 --password MDP "ban JoueurMechant" # Débannir docker exec mc-nationsglory rcon-cli --host IP --port 25575 --password MDP "pardon JoueurMechant" ``` --- ## 💾 Sauvegardes automatiques ### Script de sauvegarde ```bash #!/bin/bash # save-world.sh BACKUP_DIR="$HOME/backups/nationsglory" DATE=$(date +%Y%m%d_%H%M%S) # Créer le dossier de sauvegarde mkdir -p "$BACKUP_DIR" # Forcer la sauvegarde docker exec mc-nationsglory rcon-cli \ --host 192.168.1.252 \ --port 25575 \ --password VotreMotDePasse \ "save-all" # Attendre la fin sleep 5 # Archiver cd /chemin/vers/serveur tar -czf "$BACKUP_DIR/world_$DATE.tar.gz" world/ echo "✅ Sauvegarde créée: $BACKUP_DIR/world_$DATE.tar.gz" ``` ### Automatiser avec cron ```bash # Éditer crontab crontab -e # Sauvegarder toutes les 6 heures 0 */6 * * * /chemin/vers/save-world.sh >> /var/log/minecraft-backup.log 2>&1 ``` --- ## 🚀 Optimisation performances ### Augmenter la RAM ```yaml # docker-compose.yml environment: MEMORY: "4G" # RAM max INIT_MEMORY: "2G" # RAM initiale deploy: resources: limits: memory: 5G # Limite Docker ``` ### Options JVM optimisées ```yaml command: - sh - -c - | cd /data exec java \ -Xms2G -Xmx4G \ -XX:+UseG1GC \ -XX:+ParallelRefProcEnabled \ -XX:MaxGCPauseMillis=200 \ -XX:+UnlockExperimentalVMOptions \ -XX:+DisableExplicitGC \ -XX:G1NewSizePercent=30 \ -XX:G1MaxNewSizePercent=40 \ -XX:G1HeapRegionSize=8M \ -jar mcpc.jar nogui ``` --- ## 🔍 Monitoring ### Voir les logs en temps réel ```bash # Tous les logs docker logs -f mc-nationsglory # Sans spam Forge (filtrer les >) docker logs -f mc-nationsglory 2>&1 | sed -u '/^>/d' # Rechercher des erreurs docker logs mc-nationsglory 2>&1 | grep -i "error\|exception" ``` ### Surveiller les ressources ```bash # Utilisation CPU/RAM docker stats mc-nationsglory # Processus Java docker exec mc-nationsglory ps aux | grep java ``` --- ## 🐛 Dépannage courant ### Problème: "Failed to verify username" **Cause**: `online-mode=true` **Solution**: ```bash docker exec mc-nationsglory sed -i 's/online-mode=true/online-mode=false/' /data/server.properties docker-compose restart ``` ### Problème: RCON "authentication failed" **Cause**: Mot de passe incorrect ou vide **Solution**: ```bash # Vérifier le mot de passe docker exec mc-nationsglory grep "rcon.password" /data/server.properties # Le définir docker exec mc-nationsglory sed -i 's/^rcon.password=.*/rcon.password=NouveauMDP/' /data/server.properties docker-compose restart ``` ### Problème: Le monde n'est pas FLAT **Solution**: ```bash docker-compose down sudo rm -rf world world_* sed -i 's/level-type=.*/level-type=FLAT/' server.properties docker-compose up -d ``` ### Problème: Serveur lag **Solutions**: 1. Augmenter RAM (voir Optimisation) 2. Réduire view-distance dans server.properties: `view-distance=8` 3. Nettoyer les logs: `docker exec mc-nationsglory rm -f /data/*.log` --- ## 📊 Variables d'environnement complètes | Variable | Valeur par défaut | Description | |----------|------------------|-------------| | `SERVER_PORT` | 25565 | Port Minecraft | | `RCON_PORT` | 25575 | Port RCON | | `RCON_PASSWORD` | minecraft | Mot de passe RCON | | `ENABLE_RCON` | true | Activer RCON | | `ONLINE_MODE` | FALSE | Authentification Mojang | | `GAMEMODE` | 1 | Mode de jeu (0/1/2) | | `DIFFICULTY` | 1 | Difficulté (0-3) | | `LEVEL_TYPE` | FLAT | Type de monde | | `MEMORY` | 2G | RAM maximale | | `INIT_MEMORY` | 1G | RAM initiale | | `JVM_OPTS` | (voir docker-compose.yml) | Options Java | --- ## 🔗 Ressources - [Documentation MCPC+](https://www.spigotmc.org/wiki/mcpc-plus/) - [Commandes WorldEdit](https://worldedit.enginehub.org/en/latest/commands/) - [Commandes Essentials](https://essinfo.xeya.me/commands.html) - [Options JVM Minecraft](https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/)