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.
This commit is contained in:
225
GIT_SYNC.md
Normal file
225
GIT_SYNC.md
Normal file
@@ -0,0 +1,225 @@
|
|||||||
|
# 🔄 Synchronisation Git Automatique
|
||||||
|
|
||||||
|
Le script `check-config.sh` a été amélioré pour gérer automatiquement la synchronisation des repositories Git.
|
||||||
|
|
||||||
|
## 🎯 Fonctionnalités
|
||||||
|
|
||||||
|
### 1. Clonage automatique
|
||||||
|
|
||||||
|
Si les dossiers `NationsGlory_ServeurBuild_Red` ou `WebNationsGlory_ServeurBuild_Red` n'existent pas, le script les clone automatiquement depuis les URLs configurées.
|
||||||
|
|
||||||
|
### 2. Mise à jour automatique
|
||||||
|
|
||||||
|
Si les repositories existent déjà, le script :
|
||||||
|
- ✅ Vérifie si des mises à jour sont disponibles
|
||||||
|
- ✅ Met à jour automatiquement si possible
|
||||||
|
- ⚠️ Vous avertit si vous avez des modifications locales
|
||||||
|
|
||||||
|
### 3. Détection de conflits
|
||||||
|
|
||||||
|
Le script détecte :
|
||||||
|
- Modifications locales non commitées
|
||||||
|
- Différences entre la version locale et distante
|
||||||
|
- Problèmes de connexion Git
|
||||||
|
|
||||||
|
## ⚙️ Configuration
|
||||||
|
|
||||||
|
### Fichier `repos.conf`
|
||||||
|
|
||||||
|
Créez ce fichier pour configurer les URLs de vos repositories :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp repos.conf.example repos.conf
|
||||||
|
nano repos.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
### Exemples de configuration
|
||||||
|
|
||||||
|
**Git sur serveur local (SSH) :**
|
||||||
|
```bash
|
||||||
|
MC_SERVER_REPO="git@192.168.1.195:/srv/git/NationsGlory_ServeurBuild_Red.git"
|
||||||
|
WEB_ADMIN_REPO="git@192.168.1.195:/srv/git/WebNationsGlory_ServeurBuild_Red.git"
|
||||||
|
DEFAULT_BRANCH="main"
|
||||||
|
```
|
||||||
|
|
||||||
|
**GitHub (SSH) :**
|
||||||
|
```bash
|
||||||
|
MC_SERVER_REPO="git@github.com:username/NationsGlory_ServeurBuild_Red.git"
|
||||||
|
WEB_ADMIN_REPO="git@github.com:username/WebNationsGlory_ServeurBuild_Red.git"
|
||||||
|
DEFAULT_BRANCH="main"
|
||||||
|
```
|
||||||
|
|
||||||
|
**GitHub (HTTPS) :**
|
||||||
|
```bash
|
||||||
|
MC_SERVER_REPO="https://github.com/username/NationsGlory_ServeurBuild_Red.git"
|
||||||
|
WEB_ADMIN_REPO="https://github.com/username/WebNationsGlory_ServeurBuild_Red.git"
|
||||||
|
DEFAULT_BRANCH="main"
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🚀 Utilisation
|
||||||
|
|
||||||
|
### Premier déploiement
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1. Configurer les URLs Git
|
||||||
|
cp repos.conf.example repos.conf
|
||||||
|
nano repos.conf
|
||||||
|
|
||||||
|
# 2. Cloner et vérifier
|
||||||
|
./check-config.sh
|
||||||
|
|
||||||
|
# 3. Déployer
|
||||||
|
./deploy.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Mise à jour
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Vérifier et mettre à jour
|
||||||
|
./check-config.sh
|
||||||
|
|
||||||
|
# Si des mises à jour sont disponibles
|
||||||
|
./stop.sh
|
||||||
|
./deploy.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📋 Comportement du script
|
||||||
|
|
||||||
|
### Cas 1 : Repository n'existe pas
|
||||||
|
|
||||||
|
```
|
||||||
|
[→] Clonage de NationsGlory Serveur MC depuis git@...
|
||||||
|
[✓] NationsGlory Serveur MC cloné avec succès
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cas 2 : Repository à jour
|
||||||
|
|
||||||
|
```
|
||||||
|
[INFO] Repository NationsGlory Serveur MC existe, vérification des mises à jour...
|
||||||
|
[✓] NationsGlory Serveur MC est à jour
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cas 3 : Mise à jour disponible
|
||||||
|
|
||||||
|
```
|
||||||
|
[INFO] Repository NationsGlory Serveur MC existe, vérification des mises à jour...
|
||||||
|
[→] Mise à jour de NationsGlory Serveur MC disponible...
|
||||||
|
[→] Mise à jour de NationsGlory Serveur MC...
|
||||||
|
[✓] NationsGlory Serveur MC mis à jour avec succès
|
||||||
|
```
|
||||||
|
|
||||||
|
### Cas 4 : Modifications locales
|
||||||
|
|
||||||
|
```
|
||||||
|
[INFO] Repository NationsGlory Serveur MC existe, vérification des mises à jour...
|
||||||
|
[→] Mise à jour de NationsGlory Serveur MC disponible...
|
||||||
|
[⚠] NationsGlory Serveur MC a des modifications locales non commitées
|
||||||
|
[INFO] Pour mettre à jour, committez ou annulez vos modifications
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔐 Configuration SSH
|
||||||
|
|
||||||
|
### Pour un serveur Git local
|
||||||
|
|
||||||
|
1. **Générer une clé SSH** (si vous n'en avez pas) :
|
||||||
|
```bash
|
||||||
|
ssh-keygen -t ed25519 -C "votre@email.com"
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Copier la clé sur le serveur Git** :
|
||||||
|
```bash
|
||||||
|
ssh-copy-id user@192.168.1.195
|
||||||
|
```
|
||||||
|
|
||||||
|
3. **Tester la connexion** :
|
||||||
|
```bash
|
||||||
|
ssh git@192.168.1.195
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pour GitHub/GitLab
|
||||||
|
|
||||||
|
1. **Ajouter votre clé SSH** à votre compte GitHub/GitLab
|
||||||
|
|
||||||
|
2. **Tester la connexion** :
|
||||||
|
```bash
|
||||||
|
ssh -T git@github.com
|
||||||
|
# ou
|
||||||
|
ssh -T git@gitlab.com
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🐛 Dépannage
|
||||||
|
|
||||||
|
### Erreur : "Échec du clonage"
|
||||||
|
|
||||||
|
**Causes possibles :**
|
||||||
|
- URL Git incorrecte dans `repos.conf`
|
||||||
|
- Problème d'authentification SSH
|
||||||
|
- Serveur Git inaccessible
|
||||||
|
|
||||||
|
**Solutions :**
|
||||||
|
```bash
|
||||||
|
# Vérifier l'URL
|
||||||
|
cat repos.conf
|
||||||
|
|
||||||
|
# Tester la connexion SSH
|
||||||
|
ssh git@192.168.1.195
|
||||||
|
|
||||||
|
# Cloner manuellement pour voir l'erreur
|
||||||
|
git clone <URL_DU_REPO>
|
||||||
|
```
|
||||||
|
|
||||||
|
### Avertissement : "Modifications locales non commitées"
|
||||||
|
|
||||||
|
**Solution 1 : Commiter les modifications**
|
||||||
|
```bash
|
||||||
|
cd NationsGlory_ServeurBuild_Red
|
||||||
|
git add .
|
||||||
|
git commit -m "Mes modifications"
|
||||||
|
git push
|
||||||
|
```
|
||||||
|
|
||||||
|
**Solution 2 : Annuler les modifications**
|
||||||
|
```bash
|
||||||
|
cd NationsGlory_ServeurBuild_Red
|
||||||
|
git reset --hard origin/main
|
||||||
|
```
|
||||||
|
|
||||||
|
### Erreur : "MC_SERVER_REPO non défini"
|
||||||
|
|
||||||
|
**Solution :**
|
||||||
|
```bash
|
||||||
|
# Créer repos.conf depuis le template
|
||||||
|
cp repos.conf.example repos.conf
|
||||||
|
nano repos.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
## 📚 Workflow recommandé
|
||||||
|
|
||||||
|
### Développement local
|
||||||
|
|
||||||
|
1. Faites vos modifications dans les sous-repositories
|
||||||
|
2. Testez localement
|
||||||
|
3. Committez et pushez vos changements
|
||||||
|
4. Sur le serveur de production, exécutez `./check-config.sh` pour mettre à jour
|
||||||
|
|
||||||
|
### Production
|
||||||
|
|
||||||
|
1. Exécutez régulièrement `./check-config.sh` pour vérifier les mises à jour
|
||||||
|
2. Si des mises à jour sont détectées :
|
||||||
|
```bash
|
||||||
|
./stop.sh
|
||||||
|
./check-config.sh # Met à jour
|
||||||
|
./deploy.sh # Redémarre
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🎓 Avantages
|
||||||
|
|
||||||
|
✅ **Automatisation** : Plus besoin de cloner/pull manuellement
|
||||||
|
✅ **Détection de conflits** : Avertit avant d'écraser des modifications
|
||||||
|
✅ **Portable** : Fonctionne sur n'importe quelle machine
|
||||||
|
✅ **Flexible** : Supporte Git local, GitHub, GitLab, etc.
|
||||||
|
✅ **Sécurité** : Vérifie avant de modifier
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Note** : Le fichier `repos.conf` n'est pas versionné (dans `.gitignore`) pour permettre des configurations différentes sur chaque machine.
|
||||||
113
README.md
113
README.md
@@ -6,22 +6,58 @@ Ce dossier contient le serveur Minecraft NationsGlory modé et son interface web
|
|||||||
|
|
||||||
```
|
```
|
||||||
Serveur NationsGlory/
|
Serveur NationsGlory/
|
||||||
├── NationsGlory_ServeurBuild_Red/ # Serveur Minecraft 1.6.4
|
├── NationsGlory_ServeurBuild_Red/ # Serveur Minecraft 1.6.4 (repo Git)
|
||||||
├── WebNationsGlory_ServeurBuild_Red/ # Application web admin
|
├── WebNationsGlory_ServeurBuild_Red/ # Application web admin (repo Git)
|
||||||
├── deploy.sh # Script de déploiement
|
├── deploy.sh # Script de déploiement
|
||||||
└── stop.sh # Script d'arrêt
|
├── stop.sh # Script d'arrêt
|
||||||
|
├── check-config.sh # Vérification et sync Git
|
||||||
|
└── repos.conf # Configuration des repos Git
|
||||||
```
|
```
|
||||||
|
|
||||||
## 🚀 Déploiement Rapide
|
## 🚀 Déploiement Rapide
|
||||||
|
|
||||||
### Prérequis
|
### Prérequis
|
||||||
|
|
||||||
|
- Git installé
|
||||||
- Docker et Docker Compose installés
|
- Docker et Docker Compose installés
|
||||||
- Ports disponibles: 25565 (Minecraft), 25575 (RCON), 4001 (Web Admin)
|
- Ports disponibles: 25565 (Minecraft), 25575 (RCON), 4001 (Web Admin)
|
||||||
|
|
||||||
### Installation en 3 étapes
|
### Installation en 4 étapes
|
||||||
|
|
||||||
#### 1. Configuration initiale
|
#### 0. Configuration Git (première fois uniquement)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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 :**
|
||||||
|
```bash
|
||||||
|
# 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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./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
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd WebNationsGlory_ServeurBuild_Red
|
cd WebNationsGlory_ServeurBuild_Red
|
||||||
@@ -33,7 +69,7 @@ Modifiez au minimum :
|
|||||||
- `SESSION_SECRET` : Générez avec `openssl rand -base64 32`
|
- `SESSION_SECRET` : Générez avec `openssl rand -base64 32`
|
||||||
- `RCON_PASSWORD` : Mot de passe pour RCON (doit correspondre au serveur MC)
|
- `RCON_PASSWORD` : Mot de passe pour RCON (doit correspondre au serveur MC)
|
||||||
|
|
||||||
#### 2. Déploiement
|
#### 3. Déploiement
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
cd .. # Retour au dossier parent
|
cd .. # Retour au dossier parent
|
||||||
@@ -47,7 +83,7 @@ Le script va automatiquement :
|
|||||||
- ✅ Démarrer l'application web admin
|
- ✅ Démarrer l'application web admin
|
||||||
- ✅ Afficher les URLs d'accès
|
- ✅ Afficher les URLs d'accès
|
||||||
|
|
||||||
#### 3. Accès
|
#### 4. Accès
|
||||||
|
|
||||||
**Serveur Minecraft:**
|
**Serveur Minecraft:**
|
||||||
- Adresse: `votre-ip:25565`
|
- Adresse: `votre-ip:25565`
|
||||||
@@ -192,15 +228,72 @@ Cette configuration est entièrement portable :
|
|||||||
✅ **Configuration par variables d'environnement** : Facile à adapter
|
✅ **Configuration par variables d'environnement** : Facile à adapter
|
||||||
✅ **Détection automatique de l'hôte** : Fonctionne sur n'importe quelle machine
|
✅ **Détection automatique de l'hôte** : Fonctionne sur n'importe quelle machine
|
||||||
✅ **Scripts de déploiement** : Installation simplifiée
|
✅ **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
|
### Déployer sur une nouvelle machine
|
||||||
|
|
||||||
1. Copiez tout le dossier `Serveur NationsGlory`
|
1. Clonez le repository parent :
|
||||||
2. Configurez le fichier `.env`
|
```bash
|
||||||
3. Exécutez `./deploy.sh`
|
git clone <url-du-repo-parent> NationsGlory
|
||||||
|
cd NationsGlory
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Configurez les repositories :
|
||||||
|
```bash
|
||||||
|
cp repos.conf.example repos.conf
|
||||||
|
nano repos.conf # Configurez les URLs Git
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Synchronisez et déployez :
|
||||||
|
```bash
|
||||||
|
./check-config.sh # Clone les repos si nécessaire
|
||||||
|
./deploy.sh
|
||||||
|
```
|
||||||
|
|
||||||
C'est tout ! 🎉
|
C'est tout ! 🎉
|
||||||
|
|
||||||
|
## 🔄 Mises à jour
|
||||||
|
|
||||||
|
### Mettre à jour les projets
|
||||||
|
|
||||||
|
Le script `check-config.sh` gère automatiquement les mises à jour :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./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
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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 :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd NationsGlory_ServeurBuild_Red
|
||||||
|
git reset --hard origin/main
|
||||||
|
git pull
|
||||||
|
|
||||||
|
cd ../WebNationsGlory_ServeurBuild_Red
|
||||||
|
git reset --hard origin/main
|
||||||
|
git pull
|
||||||
|
```
|
||||||
|
|
||||||
## 🐛 Dépannage
|
## 🐛 Dépannage
|
||||||
|
|
||||||
### Le serveur Minecraft ne démarre pas
|
### Le serveur Minecraft ne démarre pas
|
||||||
|
|||||||
103
check-config.sh
103
check-config.sh
@@ -3,6 +3,7 @@
|
|||||||
#######################################
|
#######################################
|
||||||
# Script de vérification de configuration
|
# Script de vérification de configuration
|
||||||
# Vérifie que tout est prêt pour le déploiement
|
# Vérifie que tout est prêt pour le déploiement
|
||||||
|
# Clone ou met à jour les repositories si nécessaire
|
||||||
#######################################
|
#######################################
|
||||||
|
|
||||||
# Ne pas utiliser set -e car on veut continuer malgré les erreurs
|
# Ne pas utiliser set -e car on veut continuer malgré les erreurs
|
||||||
@@ -13,6 +14,7 @@ RED='\033[0;31m'
|
|||||||
GREEN='\033[0;32m'
|
GREEN='\033[0;32m'
|
||||||
YELLOW='\033[1;33m'
|
YELLOW='\033[1;33m'
|
||||||
BLUE='\033[0;34m'
|
BLUE='\033[0;34m'
|
||||||
|
CYAN='\033[0;36m'
|
||||||
NC='\033[0m'
|
NC='\033[0m'
|
||||||
|
|
||||||
ERRORS=0
|
ERRORS=0
|
||||||
@@ -36,16 +38,117 @@ log_error() {
|
|||||||
((ERRORS++))
|
((ERRORS++))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log_action() {
|
||||||
|
echo -e "${CYAN}[→]${NC} $1"
|
||||||
|
}
|
||||||
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
MC_SERVER_DIR="${SCRIPT_DIR}/NationsGlory_ServeurBuild_Red"
|
MC_SERVER_DIR="${SCRIPT_DIR}/NationsGlory_ServeurBuild_Red"
|
||||||
WEB_ADMIN_DIR="${SCRIPT_DIR}/WebNationsGlory_ServeurBuild_Red"
|
WEB_ADMIN_DIR="${SCRIPT_DIR}/WebNationsGlory_ServeurBuild_Red"
|
||||||
|
|
||||||
|
# Charger la configuration des repos
|
||||||
|
REPOS_CONF="${SCRIPT_DIR}/repos.conf"
|
||||||
|
if [ -f "$REPOS_CONF" ]; then
|
||||||
|
source "$REPOS_CONF"
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
log_info "═══════════════════════════════════════════════════════"
|
log_info "═══════════════════════════════════════════════════════"
|
||||||
log_info " Vérification de Configuration - NationsGlory"
|
log_info " Vérification de Configuration - NationsGlory"
|
||||||
log_info "═══════════════════════════════════════════════════════"
|
log_info "═══════════════════════════════════════════════════════"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
# Vérification Git
|
||||||
|
log_info "Vérification de Git..."
|
||||||
|
if command -v git &> /dev/null; then
|
||||||
|
log_success "Git installé: $(git --version | head -n1)"
|
||||||
|
else
|
||||||
|
log_error "Git n'est pas installé"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
# Fonction pour cloner ou mettre à jour un repository
|
||||||
|
sync_repository() {
|
||||||
|
local repo_url="$1"
|
||||||
|
local target_dir="$2"
|
||||||
|
local repo_name="$3"
|
||||||
|
local branch="${4:-main}"
|
||||||
|
|
||||||
|
if [ -z "$repo_url" ] || [ "$repo_url" == "git@192.168.1.195:/path/to/"* ]; then
|
||||||
|
log_warning "URL du repository $repo_name non configurée dans repos.conf"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "$target_dir/.git" ]; then
|
||||||
|
log_info "Repository $repo_name existe, vérification des mises à jour..."
|
||||||
|
cd "$target_dir"
|
||||||
|
|
||||||
|
# Récupérer les informations du remote
|
||||||
|
git fetch origin &>/dev/null
|
||||||
|
|
||||||
|
# Vérifier s'il y a des changements
|
||||||
|
LOCAL=$(git rev-parse @)
|
||||||
|
REMOTE=$(git rev-parse @{u} 2>/dev/null || echo "")
|
||||||
|
|
||||||
|
if [ -z "$REMOTE" ]; then
|
||||||
|
log_warning "$repo_name: Impossible de vérifier les mises à jour (pas de tracking branch)"
|
||||||
|
elif [ "$LOCAL" = "$REMOTE" ]; then
|
||||||
|
log_success "$repo_name est à jour"
|
||||||
|
else
|
||||||
|
log_action "Mise à jour de $repo_name disponible..."
|
||||||
|
|
||||||
|
# Vérifier s'il y a des modifications locales
|
||||||
|
if ! git diff-index --quiet HEAD --; then
|
||||||
|
log_warning "$repo_name a des modifications locales non commitées"
|
||||||
|
log_info "Pour mettre à jour, committez ou annulez vos modifications"
|
||||||
|
else
|
||||||
|
log_action "Mise à jour de $repo_name..."
|
||||||
|
if git pull origin "$branch" &>/dev/null; then
|
||||||
|
log_success "$repo_name mis à jour avec succès"
|
||||||
|
else
|
||||||
|
log_error "Échec de la mise à jour de $repo_name"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$SCRIPT_DIR"
|
||||||
|
elif [ -d "$target_dir" ]; then
|
||||||
|
log_warning "$target_dir existe mais n'est pas un repository Git"
|
||||||
|
log_info "Pour le convertir en repository Git, supprimez-le et relancez ce script"
|
||||||
|
else
|
||||||
|
log_action "Clonage de $repo_name depuis $repo_url..."
|
||||||
|
if git clone "$repo_url" "$target_dir" &>/dev/null; then
|
||||||
|
log_success "$repo_name cloné avec succès"
|
||||||
|
else
|
||||||
|
log_error "Échec du clonage de $repo_name"
|
||||||
|
log_info "Vérifiez l'URL dans repos.conf et vos accès Git"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# Synchronisation des repositories
|
||||||
|
log_info "Synchronisation des repositories..."
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
log_info "→ Serveur Minecraft"
|
||||||
|
if [ -n "$MC_SERVER_REPO" ]; then
|
||||||
|
sync_repository "$MC_SERVER_REPO" "$MC_SERVER_DIR" "NationsGlory Serveur MC" "${DEFAULT_BRANCH:-main}"
|
||||||
|
else
|
||||||
|
log_warning "MC_SERVER_REPO non défini dans repos.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
|
log_info "→ Application Web Admin"
|
||||||
|
if [ -n "$WEB_ADMIN_REPO" ]; then
|
||||||
|
sync_repository "$WEB_ADMIN_REPO" "$WEB_ADMIN_DIR" "Web Admin" "${DEFAULT_BRANCH:-main}"
|
||||||
|
else
|
||||||
|
log_warning "WEB_ADMIN_REPO non défini dans repos.conf"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
|
||||||
# Vérification Docker
|
# Vérification Docker
|
||||||
log_info "Vérification de Docker..."
|
log_info "Vérification de Docker..."
|
||||||
if command -v docker &> /dev/null; then
|
if command -v docker &> /dev/null; then
|
||||||
|
|||||||
15
repos.conf
Normal file
15
repos.conf
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# Configuration des repositories Git
|
||||||
|
# Modifiez ces URLs selon votre configuration
|
||||||
|
|
||||||
|
# URL du repository du serveur Minecraft
|
||||||
|
# Exemples :
|
||||||
|
# - Git local: git@192.168.1.195:/path/to/NationsGlory_ServeurBuild_Red.git
|
||||||
|
# - GitHub: https://github.com/user/NationsGlory_ServeurBuild_Red.git
|
||||||
|
# - GitLab: https://gitlab.com/user/NationsGlory_ServeurBuild_Red.git
|
||||||
|
MC_SERVER_REPO="git@192.168.1.195:/path/to/NationsGlory_ServeurBuild_Red.git"
|
||||||
|
|
||||||
|
# URL du repository de l'application web
|
||||||
|
WEB_ADMIN_REPO="git@192.168.1.195:/path/to/WebNationsGlory_ServeurBuild_Red.git"
|
||||||
|
|
||||||
|
# Branche par défaut
|
||||||
|
DEFAULT_BRANCH="main"
|
||||||
57
repos.conf.example
Normal file
57
repos.conf.example
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
# ═══════════════════════════════════════════════════════════════
|
||||||
|
# Configuration des repositories Git - Template
|
||||||
|
# ═══════════════════════════════════════════════════════════════
|
||||||
|
#
|
||||||
|
# Copiez ce fichier vers repos.conf et configurez vos URLs Git
|
||||||
|
# cp repos.conf.example repos.conf
|
||||||
|
#
|
||||||
|
# Le script check-config.sh utilisera ces URLs pour :
|
||||||
|
# - Cloner les repositories s'ils n'existent pas
|
||||||
|
# - Mettre à jour les repositories existants
|
||||||
|
#
|
||||||
|
# ═══════════════════════════════════════════════════════════════
|
||||||
|
|
||||||
|
# URL du repository du serveur Minecraft
|
||||||
|
# ───────────────────────────────────────────────────────────────
|
||||||
|
# Exemples selon votre hébergement :
|
||||||
|
#
|
||||||
|
# Git sur serveur local (SSH) :
|
||||||
|
# MC_SERVER_REPO="git@192.168.1.195:/srv/git/NationsGlory_ServeurBuild_Red.git"
|
||||||
|
#
|
||||||
|
# GitHub (HTTPS) :
|
||||||
|
# MC_SERVER_REPO="https://github.com/votre-username/NationsGlory_ServeurBuild_Red.git"
|
||||||
|
#
|
||||||
|
# GitHub (SSH) :
|
||||||
|
# MC_SERVER_REPO="git@github.com:votre-username/NationsGlory_ServeurBuild_Red.git"
|
||||||
|
#
|
||||||
|
# GitLab :
|
||||||
|
# MC_SERVER_REPO="https://gitlab.com/votre-username/NationsGlory_ServeurBuild_Red.git"
|
||||||
|
#
|
||||||
|
MC_SERVER_REPO="git@192.168.1.195:/path/to/NationsGlory_ServeurBuild_Red.git"
|
||||||
|
|
||||||
|
# URL du repository de l'application web
|
||||||
|
# ───────────────────────────────────────────────────────────────
|
||||||
|
WEB_ADMIN_REPO="git@192.168.1.195:/path/to/WebNationsGlory_ServeurBuild_Red.git"
|
||||||
|
|
||||||
|
# Branche par défaut
|
||||||
|
# ───────────────────────────────────────────────────────────────
|
||||||
|
# La branche à cloner/pull (généralement 'main' ou 'master')
|
||||||
|
DEFAULT_BRANCH="main"
|
||||||
|
|
||||||
|
# ═══════════════════════════════════════════════════════════════
|
||||||
|
# Notes :
|
||||||
|
# ───────────────────────────────────────────────────────────────
|
||||||
|
#
|
||||||
|
# 1. Pour un serveur Git local via SSH :
|
||||||
|
# - Format : git@IP:/chemin/absolu/vers/repo.git
|
||||||
|
# - Assurez-vous que le serveur Git est accessible
|
||||||
|
# - Les clés SSH doivent être configurées
|
||||||
|
#
|
||||||
|
# 2. Pour GitHub/GitLab :
|
||||||
|
# - HTTPS : Nécessite identifiants à chaque fois (ou credential helper)
|
||||||
|
# - SSH : Nécessite clé SSH configurée (recommandé)
|
||||||
|
#
|
||||||
|
# 3. Le script vérifiera automatiquement les mises à jour
|
||||||
|
# et vous avertira si des changements locaux non commités existent
|
||||||
|
#
|
||||||
|
# ═══════════════════════════════════════════════════════════════
|
||||||
Reference in New Issue
Block a user