Ajout: Système de gestion et synchronisation production
- Script audit-production.sh pour audit complet - Script sync-from-production.sh pour synchronisation facile - Guide WORKFLOW.md pour processus de modification - README pour le dossier scripts - Documentation complète du workflow Git
This commit is contained in:
Executable
+125
@@ -0,0 +1,125 @@
|
||||
#!/bin/bash
|
||||
# ═══════════════════════════════════════════════════════════
|
||||
# EFFI - Script de synchronisation depuis la production
|
||||
# Usage: ./sync-from-production.sh
|
||||
# Ce script récupère la config de effi-server et prépare le commit
|
||||
# ═══════════════════════════════════════════════════════════
|
||||
|
||||
set -e
|
||||
|
||||
# Configuration
|
||||
EFFI_SERVER="effi@192.168.1.27"
|
||||
REMOTE_PATH="~/effi"
|
||||
LOCAL_PATH="."
|
||||
|
||||
# Couleurs
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m'
|
||||
|
||||
echo "═════════════════════════════════════════════════════════════"
|
||||
echo " 🔄 SYNCHRONISATION DEPUIS LA PRODUCTION"
|
||||
echo " Serveur: $EFFI_SERVER"
|
||||
echo " Date: $(date)"
|
||||
echo "═════════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
|
||||
# Vérifier qu'on est dans le dépôt Git
|
||||
if [ ! -d ".git" ]; then
|
||||
echo -e "${RED}❌ Erreur: Ce script doit être exécuté dans le dépôt Git Effi${NC}"
|
||||
echo "Exécutez: cd ~/Documents/OpenCode/Projets/Effi"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Vérifier la connexion SSH
|
||||
echo -e "${BLUE}🔌 Vérification connexion SSH...${NC}"
|
||||
if ! ssh -q -o BatchMode=yes -o ConnectTimeout=5 $EFFI_SERVER exit 2>/dev/null; then
|
||||
echo -e "${RED}❌ Impossible de se connecter à $EFFI_SERVER${NC}"
|
||||
echo "Vérifiez:"
|
||||
echo " 1. Que le serveur est allumé"
|
||||
echo " 2. Que votre clé SSH est configurée"
|
||||
echo " 3. L'adresse IP ($EFFI_SERVER)"
|
||||
exit 1
|
||||
fi
|
||||
echo -e "${GREEN}✓ Connexion SSH OK${NC}"
|
||||
echo ""
|
||||
|
||||
# Sauvegarder le .env local s'il existe
|
||||
if [ -f ".env" ]; then
|
||||
cp .env .env.local.backup
|
||||
echo -e "${BLUE}💾 Sauvegarde du .env local créée (.env.local.backup)${NC}"
|
||||
fi
|
||||
|
||||
# Récupérer docker-compose.yml
|
||||
echo -e "${BLUE}📥 Récupération de docker-compose.yml...${NC}"
|
||||
scp $EFFI_SERVER:$REMOTE_PATH/docker-compose.yml $LOCAL_PATH/
|
||||
echo -e "${GREEN}✓ docker-compose.yml récupéré${NC}"
|
||||
|
||||
# Récupérer .env (on le renomme pour ne pas écraser accidentellement)
|
||||
echo -e "${BLUE}📥 Récupération de .env (anonymisé)...${NC}"
|
||||
scp $EFFI_SERVER:$REMOTE_PATH/.env $LOCAL_PATH/.env.production 2>/dev/null || echo -e "${YELLOW}⚠️ Pas de .env sur le serveur${NC}"
|
||||
|
||||
# Anonymiser le .env récupéré
|
||||
if [ -f ".env.production" ]; then
|
||||
echo -e "${BLUE}🔒 Anonymisation des valeurs sensibles...${NC}"
|
||||
# Remplacer les valeurs par des placeholders
|
||||
sed -i 's/=.*/=[valeur_production]/g' .env.production
|
||||
echo -e "${GREEN}✓ .env.production créé (valeurs masquées)${NC}"
|
||||
fi
|
||||
|
||||
# Récupérer les scripts s'ils existent
|
||||
echo -e "${BLUE}📥 Récupération des scripts...${NC}"
|
||||
scp $EFFI_SERVER:$REMOTE_PATH/scripts/*.sh $LOCAL_PATH/scripts/ 2>/dev/null || echo -e "${YELLOW}⚠️ Pas de scripts sur le serveur${NC}"
|
||||
|
||||
# Vérifier les différences
|
||||
echo ""
|
||||
echo "═════════════════════════════════════════════════════════════"
|
||||
echo " 📊 DIFFÉRENCES DÉTECTÉES"
|
||||
echo "═════════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
|
||||
if git diff --quiet HEAD; then
|
||||
echo -e "${GREEN}✓ Aucune différence avec le dépôt${NC}"
|
||||
echo "La production est déjà synchronisée avec Gitea."
|
||||
exit 0
|
||||
else
|
||||
echo -e "${YELLOW}⚠️ Différences trouvées:${NC}"
|
||||
git diff --stat
|
||||
echo ""
|
||||
echo -e "${BLUE}Détails des changements:${NC}"
|
||||
git diff --color-words
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "═════════════════════════════════════════════════════════════"
|
||||
echo " 📝 PROCHAINES ÉTAPES"
|
||||
echo "═════════════════════════════════════════════════════════════"
|
||||
echo ""
|
||||
echo "Les fichiers ont été récupérés depuis la production."
|
||||
echo ""
|
||||
echo "Pour finaliser la synchronisation:"
|
||||
echo ""
|
||||
echo " 1. ${YELLOW}Vérifiez${NC} les changements:"
|
||||
echo " git diff"
|
||||
echo ""
|
||||
echo " 2. ${YELLOW}Mettez à jour${NC} .env.example si de nouvelles variables:"
|
||||
echo " diff .env.example .env.production"
|
||||
echo ""
|
||||
echo " 3. ${YELLOW}Commitez${NC} les changements:"
|
||||
echo " git add docker-compose.yml"
|
||||
echo " git commit -m \"Sync: Mise à jour depuis production - $(date +%Y-%m-%d)\""
|
||||
echo ""
|
||||
echo " 4. ${YELLOW}Poussez${NC} sur Gitea:"
|
||||
echo " git push"
|
||||
echo ""
|
||||
echo "═════════════════════════════════════════════════════════════"
|
||||
|
||||
# Restaurer le .env local
|
||||
if [ -f ".env.local.backup" ]; then
|
||||
mv .env.local.backup .env
|
||||
echo -e "${GREEN}✓ Votre .env local a été restauré${NC}"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
Reference in New Issue
Block a user