- Inclut libraries/*.jar dans Git (21 MB) - Ajoute Scala 2.10.2 (library + compiler) - Ajoute launchwrapper, asm-all, jopt-simple, lzma - Corrige .gitignore pour versionner libraries - Corrige configuration RCON dans conteneur - Met à jour .env.example avec avertissement sécurité Résout: ClassNotFoundException au démarrage
310 lines
6.8 KiB
Markdown
310 lines
6.8 KiB
Markdown
# 🔧 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/)
|