Files
rpa_vision_v3/sync_encryption_password.sh
Dom a27b74cf22 v1.0 - Version stable: multi-PC, détection UI-DETR-1, 3 modes exécution
- Frontend v4 accessible sur réseau local (192.168.1.40)
- Ports ouverts: 3002 (frontend), 5001 (backend), 5004 (dashboard)
- Ollama GPU fonctionnel
- Self-healing interactif
- Dashboard confiance

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 11:23:51 +01:00

139 lines
3.9 KiB
Bash
Executable File

#!/bin/bash
# Script de synchronisation du mot de passe de chiffrement
# entre l'agent (.env.local) et le serveur (/etc/rpa_vision_v3/rpa_vision_v3.env)
set -e
echo "🔐 RPA Vision V3 - Synchronisation Mot de Passe Chiffrement"
echo "============================================================"
echo ""
# Vérifier qu'on est bien root ou avec sudo
if [ "$EUID" -ne 0 ]; then
echo "❌ Ce script doit être exécuté avec sudo"
echo "Usage: sudo bash sync_encryption_password.sh"
exit 1
fi
# Fichiers
DEV_ENV="/home/dom/ai/rpa_vision_v3/.env.local"
PROD_ENV="/etc/rpa_vision_v3/rpa_vision_v3.env"
echo "📂 Fichiers concernés:"
echo " - Agent (dev): $DEV_ENV"
echo " - Serveur (prod): $PROD_ENV"
echo ""
# Lire le mot de passe de l'agent
echo "🔍 Lecture du mot de passe actuel de l'agent..."
AGENT_PASSWORD=$(grep "^ENCRYPTION_PASSWORD=" "$DEV_ENV" | cut -d'=' -f2)
if [ -z "$AGENT_PASSWORD" ]; then
echo "❌ ENCRYPTION_PASSWORD non trouvé dans $DEV_ENV"
exit 1
fi
echo " Agent utilise: ${AGENT_PASSWORD:0:20}..."
echo ""
# Lire le mot de passe du serveur
echo "🔍 Lecture du mot de passe actuel du serveur..."
if [ -f "$PROD_ENV" ]; then
SERVER_PASSWORD=$(grep "^ENCRYPTION_PASSWORD=" "$PROD_ENV" 2>/dev/null | cut -d'=' -f2 || echo "")
if [ -z "$SERVER_PASSWORD" ]; then
echo " ⚠️ ENCRYPTION_PASSWORD non défini dans le fichier serveur"
else
echo " Serveur utilise: ${SERVER_PASSWORD:0:20}..."
fi
else
echo " ❌ Fichier $PROD_ENV introuvable"
exit 1
fi
echo ""
# Comparer les mots de passe
if [ "$AGENT_PASSWORD" = "$SERVER_PASSWORD" ]; then
echo "✅ Les mots de passe sont déjà identiques!"
echo ""
echo "Pas d'action nécessaire."
exit 0
fi
# Créer une sauvegarde
echo "💾 Création d'une sauvegarde..."
BACKUP_FILE="${PROD_ENV}.backup_$(date +%Y%m%d_%H%M%S)"
cp "$PROD_ENV" "$BACKUP_FILE"
echo " ✓ Sauvegarde: $BACKUP_FILE"
echo ""
# Mettre à jour le fichier serveur
echo "🔄 Synchronisation du mot de passe..."
TEMP_FILE=$(mktemp)
# Si ENCRYPTION_PASSWORD existe déjà, le remplacer, sinon l'ajouter
if grep -q "^ENCRYPTION_PASSWORD=" "$PROD_ENV"; then
# Remplacer la ligne existante
while IFS= read -r line; do
if [[ $line =~ ^ENCRYPTION_PASSWORD= ]]; then
echo "ENCRYPTION_PASSWORD=$AGENT_PASSWORD"
else
echo "$line"
fi
done < "$PROD_ENV" > "$TEMP_FILE"
else
# Ajouter la ligne
cat "$PROD_ENV" > "$TEMP_FILE"
echo "" >> "$TEMP_FILE"
echo "# Mot de passe de chiffrement (synchronisé avec agent)" >> "$TEMP_FILE"
echo "ENCRYPTION_PASSWORD=$AGENT_PASSWORD" >> "$TEMP_FILE"
fi
# Remplacer le fichier original
mv "$TEMP_FILE" "$PROD_ENV"
# Restaurer les permissions
chown root:rpa "$PROD_ENV"
chmod 640 "$PROD_ENV"
echo " ✓ Mot de passe synchronisé"
echo ""
# Redémarrer les services
echo "🔄 Redémarrage des services..."
systemctl restart rpa-vision-v3-api.service
systemctl restart rpa-vision-v3-worker.service
echo " ✓ Services redémarrés"
echo ""
# Attendre que les services démarrent
echo "⏳ Attente du démarrage (3 secondes)..."
sleep 3
echo ""
# Vérifier le statut
echo "📊 Statut des services:"
for service in rpa-vision-v3-api rpa-vision-v3-worker; do
status=$(systemctl is-active $service 2>/dev/null || echo "failed")
if [ "$status" = "active" ]; then
echo "$service: $status"
else
echo "$service: $status"
fi
done
echo ""
echo "✅ SYNCHRONISATION TERMINÉE"
echo ""
echo "📝 Vérification:"
echo " Agent: ${AGENT_PASSWORD:0:20}..."
echo " Serveur: ${AGENT_PASSWORD:0:20}..."
echo ""
echo "🎯 Prochaines étapes:"
echo " 1. Tester l'agent: cd agent_v0 && ./run.sh"
echo " 2. Vérifier l'upload: ls -lht /opt/rpa_vision_v3/data/training/sessions/"
echo ""
echo "💾 En cas de problème, restaurer:"
echo " sudo cp $BACKUP_FILE $PROD_ENV"
echo " sudo systemctl restart rpa-vision-v3-*.service"