# 🚀 Déploiement Serveur NationsGlory 1.6.4

## Prérequis

- Docker & Docker Compose installés
- Minimum 4GB RAM
- Port 25565 ouvert
- Git installé

## 📦 Installation rapide (TOUT INCLUS)

```bash
# 1. Cloner le dépôt (inclut mcpc.jar)
git clone <votre-repo-git> nationsglory-server
cd nationsglory-server

# 2. Configurer (optionnel)
cp .env.example .env

# 3. Démarrer le serveur
docker-compose up -d

# 4. Vérifier les logs
docker logs -f mc-nationsglory | sed -u '/^>/d'
```

**C'est tout!** Le serveur est maintenant accessible sur le port 25565.

## 📁 Structure du projet

```
nationsglory-server/
├── docker-compose.yml      # Configuration Docker
├── .env.example            # Template de configuration
├── .gitignore              # Fichiers ignorés par Git
│
├── mcpc.jar                # Serveur MCPC+ (INCLUS dans Git - 29 MB)
│
├── mods/                   # Mods Forge (versionnés - 20 MB)
├── plugins/                # Plugins Bukkit (versionnés - 3.3 MB)
├── config/                 # Configuration mods/plugins (versionné)
│
├── world/                  # Données monde (NON versionné)
└── logs/                   # Logs serveur (NON versionné)
```

## 🎮 Commandes utiles

### Gestion du serveur
```bash
# Démarrer
docker-compose up -d

# Arrêter
docker-compose down

# Redémarrer
docker-compose restart

# Voir les logs (sans spam)
docker logs -f mc-nationsglory 2>&1 | sed -u '/^>/d'
```

### Console RCON
```bash
# Récupérer le mot de passe RCON
docker exec mc-nationsglory cat /data/server.properties | grep rcon.password

# Console interactive
docker exec -it mc-nationsglory rcon-cli --password <mot-de-passe>

# Commande unique
docker exec mc-nationsglory rcon-cli --password <mot-de-passe> "list"
```

### Exemples de commandes serveur
```bash
# Donner OP à un joueur
op <pseudo>

# Téléporter un joueur
tp <pseudo> <x> <y> <z>

# Changer le gamemode
gamemode 1 <pseudo>

# Message global
say Bienvenue!
```

## 🔧 Configuration

### Modifier la mémoire
Éditer `docker-compose.yml`:
```yaml
environment:
  MEMORY: "3G"          # Mémoire max
  INIT_MEMORY: "1500M"  # Mémoire initiale
```

### Ajouter des mods
1. Placer le fichier `.jar` dans `mods/`
2. Commiter: `git add mods/*.jar && git commit -m "Add mod"`
3. Redémarrer: `docker-compose restart`

### Ajouter des plugins
1. Placer le fichier `.jar` dans `plugins/`
2. Commiter: `git add plugins/*.jar && git commit -m "Add plugin"`
3. Redémarrer: `docker-compose restart`

## 📊 Taille du dépôt

**Total: ~53 MB**
- mcpc.jar: 29 MB (INCLUS)
- Mods: 20 MB
- Plugins: 3.3 MB
- Config: 488 KB
- Autres: 212 KB

**Clone initial:** ~1 minute (selon connexion)

## ⚠️ Important

- `world/` n'est PAS versionné (données de jeu spécifiques)
- `logs/` et `crash-reports/` sont ignorés
- `.env` contient des données sensibles (ne pas commiter)
- Le serveur fonctionne avec Docker (obligatoire)
- Port 25565 doit être ouvert

## 🆘 Dépannage

### Le serveur ne démarre pas
```bash
# Vérifier les logs
docker logs mc-nationsglory

# Vérifier que mcpc.jar existe
ls -lh mcpc.jar
# Devrait afficher: 29M

# Recréer le conteneur
docker-compose down
docker-compose up -d
```

### RCON ne fonctionne pas
```bash
# Récupérer le bon mot de passe
docker exec mc-nationsglory cat /data/server.properties | grep rcon.password
```

### Port déjà utilisé
Modifier le port dans `docker-compose.yml`:
```yaml
ports:
  - "25566:25565"  # Utilise le port 25566 au lieu de 25565
```

## 🔄 Workflow de mise à jour

### Sur le serveur de production
```bash
# Récupérer les mises à jour
git pull

# Redémarrer
docker-compose restart

# Vérifier
docker logs -f mc-nationsglory | sed -u '/^>/d'
```

### Ajouter un nouveau mod
```bash
# Local
cp nouveau-mod.jar mods/
git add mods/nouveau-mod.jar
git commit -m "Add: nouveau-mod"
git push

# Production
git pull
docker-compose restart
```

## 📝 Licence

NationsGlory 1.6.4 - Serveur Minecraft moddé avec Docker
