innotex 773bc7de1f feat: Synchronisation Git automatique des sous-repositories
Amélioration du script check-config.sh pour gérer automatiquement
le clonage et la mise à jour des repositories NationsGlory_ServeurBuild_Red
et WebNationsGlory_ServeurBuild_Red.

Nouveautés:
- Clone automatique si repositories absents
- Pull automatique si mises à jour disponibles
- Détection de conflits et modifications locales
- Configuration via repos.conf (template fourni)
- Documentation dans GIT_SYNC.md

Permet un déploiement simplifié sur nouvelle machine et
des mises à jour automatisées en production.
2026-02-05 18:47:13 +01:00

🎮 NationsGlory - Déploiement Unifié

Ce dossier contient le serveur Minecraft NationsGlory modé et son interface web d'administration.

📁 Structure

Serveur NationsGlory/
├── NationsGlory_ServeurBuild_Red/    # Serveur Minecraft 1.6.4 (repo Git)
├── WebNationsGlory_ServeurBuild_Red/ # Application web admin (repo Git)
├── deploy.sh                          # Script de déploiement
├── stop.sh                            # Script d'arrêt
├── check-config.sh                    # Vérification et sync Git
└── repos.conf                         # Configuration des repos Git

🚀 Déploiement Rapide

Prérequis

  • Git installé
  • Docker et Docker Compose installés
  • Ports disponibles: 25565 (Minecraft), 25575 (RCON), 4001 (Web Admin)

Installation en 4 étapes

0. Configuration Git (première fois uniquement)

# Copier et configurer les URLs des repositories
cp repos.conf.example repos.conf
nano repos.conf

Configurez les URLs de vos repositories Git :

  • MC_SERVER_REPO : URL du repository du serveur Minecraft
  • WEB_ADMIN_REPO : URL du repository de l'application web

Exemples d'URLs :

# Git local (SSH)
MC_SERVER_REPO="git@192.168.1.195:/srv/git/NationsGlory_ServeurBuild_Red.git"

# GitHub
MC_SERVER_REPO="git@github.com:username/NationsGlory_ServeurBuild_Red.git"

1. Synchronisation et vérification

./check-config.sh

Ce script va automatiquement :

  • Cloner les repositories s'ils n'existent pas
  • Mettre à jour les repositories existants
  • Vérifier Docker, les ports, et la configuration
  • Détecter les problèmes de configuration

2. Configuration initiale

cd WebNationsGlory_ServeurBuild_Red
cp .env.example .env
nano .env

Modifiez au minimum :

  • SESSION_SECRET : Générez avec openssl rand -base64 32
  • RCON_PASSWORD : Mot de passe pour RCON (doit correspondre au serveur MC)

3. Déploiement

cd ..  # Retour au dossier parent
./deploy.sh

Le script va automatiquement :

  • Vérifier les dépendances (Docker, Docker Compose)
  • Configurer les chemins relatifs entre les projets
  • Démarrer le serveur Minecraft
  • Démarrer l'application web admin
  • Afficher les URLs d'accès

4. Accès

Serveur Minecraft:

  • Adresse: votre-ip:25565
  • Version: 1.6.4 (Forge modé)

Interface Web Admin:

  • Local: http://localhost:4001
  • Réseau: http://votre-ip:4001
  • Premier accès: Créez le compte admin

🛠️ Gestion

Arrêter les services

./stop.sh

Voir les logs

Serveur Minecraft:

cd NationsGlory_ServeurBuild_Red
docker-compose logs -f

Application web:

cd WebNationsGlory_ServeurBuild_Red
docker-compose logs -f

Redémarrer

./stop.sh
./deploy.sh

🔧 Configuration Avancée

Variables d'environnement (WebNationsGlory_ServeurBuild_Red/.env)

# Environnement
NODE_ENV=production
PORT=4001

# Chemin relatif vers le serveur MC
MC_SERVER_PATH=../NationsGlory_ServeurBuild_Red

# RCON (doit correspondre au serveur MC)
RCON_HOST=localhost
RCON_PORT=25575
RCON_PASSWORD=minecraft

# Sécurité (IMPORTANT!)
SESSION_SECRET=votre-secret-genere

# Optionnel: Domaine public
# PUBLIC_HOST=votre-domaine.com

Personnalisation du serveur Minecraft

Éditez NationsGlory_ServeurBuild_Red/server.properties selon vos besoins.

Redémarrez ensuite :

cd NationsGlory_ServeurBuild_Red
docker-compose restart

📡 Accès à Distance

L'application est conçue pour fonctionner nativement avec n'importe quelle adresse :

  • Localhost: http://localhost:4001
  • IP locale: http://192.168.1.X:4001
  • IP publique: http://votre-ip-publique:4001
  • Nom de domaine: http://votre-domaine.com:4001

Le frontend détecte automatiquement l'hôte et configure les appels API en conséquence.

Configuration du pare-feu

Si vous déployez sur un serveur distant, ouvrez les ports :

# UFW (Ubuntu/Debian)
sudo ufw allow 25565/tcp  # Minecraft
sudo ufw allow 25575/tcp  # RCON
sudo ufw allow 4001/tcp   # Web Admin

# Firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=25565/tcp
sudo firewall-cmd --permanent --add-port=25575/tcp
sudo firewall-cmd --permanent --add-port=4001/tcp
sudo firewall-cmd --reload

🔐 Sécurité

Recommandations

  1. Changez le SESSION_SECRET : Utilisez une valeur aléatoire forte

    openssl rand -base64 32
    
  2. Changez le RCON_PASSWORD : Ne laissez pas "minecraft" par défaut

  3. Utilisez HTTPS : Pour la production, configurez un reverse proxy (nginx, Caddy) avec SSL

  4. Restreignez l'accès : Utilisez un pare-feu ou VPN pour l'interface admin

Exemple de configuration nginx avec SSL

server {
    listen 443 ssl http2;
    server_name votre-domaine.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:4001;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

📦 Portabilité

Cette configuration est entièrement portable :

Pas de chemins absolus : Tout est relatif au dossier parent Configuration par variables d'environnement : Facile à adapter Détection automatique de l'hôte : Fonctionne sur n'importe quelle machine Scripts de déploiement : Installation simplifiée Synchronisation Git automatique : Clonage et mises à jour gérés par check-config.sh

Déployer sur une nouvelle machine

  1. Clonez le repository parent :

    git clone <url-du-repo-parent> NationsGlory
    cd NationsGlory
    
  2. Configurez les repositories :

    cp repos.conf.example repos.conf
    nano repos.conf  # Configurez les URLs Git
    
  3. Synchronisez et déployez :

    ./check-config.sh  # Clone les repos si nécessaire
    ./deploy.sh
    

C'est tout ! 🎉

🔄 Mises à jour

Mettre à jour les projets

Le script check-config.sh gère automatiquement les mises à jour :

./check-config.sh

Le script va :

  • Vérifier si des mises à jour sont disponibles sur les repositories
  • Vous avertir si vous avez des modifications locales non commitées
  • Mettre à jour automatiquement si aucun conflit n'est détecté

Workflow de mise à jour complet

# 1. Vérifier et mettre à jour les repositories
./check-config.sh

# 2. Arrêter les services
./stop.sh

# 3. Redémarrer avec les nouvelles versions
./deploy.sh

Forcer une mise à jour manuelle

Si vous avez des modifications locales et voulez les abandonner :

cd NationsGlory_ServeurBuild_Red
git reset --hard origin/main
git pull

cd ../WebNationsGlory_ServeurBuild_Red
git reset --hard origin/main
git pull

🐛 Dépannage

Le serveur Minecraft ne démarre pas

cd NationsGlory_ServeurBuild_Red
docker-compose logs

Vérifiez que le fichier mcpc.jar est présent.

L'application web ne se connecte pas au serveur MC

  1. Vérifiez que RCON_PASSWORD est identique dans les deux configurations
  2. Vérifiez que le serveur MC a démarré complètement
  3. Testez RCON manuellement :
    docker exec -it mc-nationsglory rcon-cli
    

Erreur "SERVER_DIR not found"

Vérifiez que MC_SERVER_PATH dans .env pointe correctement vers le serveur MC.

L'API ne répond pas depuis une machine distante

  1. Vérifiez que le port 4001 est ouvert
  2. Vérifiez que Docker utilise network_mode: host dans le docker-compose.yml
  3. Testez l'accès : curl http://votre-ip:4001/api/health

📚 Documentation

🔄 Mises à jour

Pour mettre à jour le projet :

./stop.sh
git pull  # Si vous utilisez git
./deploy.sh

💾 Sauvegardes

Les sauvegardes sont gérées via l'interface web admin.

Pour une sauvegarde manuelle :

cd NationsGlory_ServeurBuild_Red
tar -czf backup-$(date +%Y%m%d-%H%M%S).tar.gz \
    --exclude='*.log' \
    --exclude='*.log.lck' \
    world/ config/ mods/ plugins/

🤝 Support

Pour toute question ou problème :

  1. Consultez les logs Docker
  2. Vérifiez les fichiers de configuration
  3. Assurez-vous que tous les ports sont ouverts

📄 Licence

Projet NationsGlory - Administration serveur Minecraft


Note: Ce README est généré pour faciliter le déploiement sur n'importe quel serveur. Les chemins sont relatifs et s'adaptent automatiquement à l'environnement.

Description
No description provided
Readme 64 KiB
Languages
Shell 100%