Files
Effi/scripts/sync-from-production.sh
T
Folzo ba0dea40e1 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
2026-04-04 09:09:46 +02:00

126 lines
5.3 KiB
Bash
Executable File

#!/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