- 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
126 lines
5.3 KiB
Bash
Executable File
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
|