- 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>
139 lines
3.9 KiB
Bash
Executable File
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"
|