Files
rpa_vision_v3/fix_services_issues.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

204 lines
6.1 KiB
Bash
Executable File

#!/bin/bash
# Fix Services Issues Script
# Auteur : Dom, Alice Kiro - 22 décembre 2025
#
# Ce script corrige les problèmes identifiés avec les services RPA Vision V3:
# 1. Erreurs de compilation TypeScript dans le frontend
# 2. Conflits de ports entre services
# 3. Configuration des endpoints API
# 4. Redémarrage propre de tous les services
set -e
echo "🔧 Correction des problèmes de services RPA Vision V3"
echo "=================================================="
# Couleurs pour l'affichage
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Fonction d'affichage
log_info() {
echo -e "${BLUE}[INFO]${NC} $1"
}
log_success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
log_warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
log_error() {
echo -e "${RED}[ERROR]${NC} $1"
}
# 1. Arrêter tous les services en conflit
log_info "Arrêt des services en conflit..."
pkill -f "python.*backend/app.py" 2>/dev/null || true
pkill -f "webpack.*serve" 2>/dev/null || true
pkill -f "node.*webpack" 2>/dev/null || true
fuser -k 3000/tcp 5001/tcp 5002/tcp 2>/dev/null || true
sleep 2
# 2. Vérifier que les ports sont libres
log_info "Vérification des ports..."
for port in 3000 5001 5002; do
if netstat -tlnp | grep ":$port " > /dev/null; then
log_warning "Port $port encore occupé, tentative de libération..."
fuser -k $port/tcp 2>/dev/null || true
sleep 1
fi
done
# 3. Corriger les erreurs TypeScript (déjà fait dans les fichiers)
log_info "Vérification des corrections TypeScript..."
if grep -q "workflowMetrics utilisé pour les métriques historiques" visual_workflow_builder/frontend/src/components/ExecutionPanel/index.tsx; then
log_success "Correction ExecutionPanel.tsx appliquée"
else
log_warning "Correction ExecutionPanel.tsx non trouvée"
fi
if grep -q "Réservé pour usage futur" visual_workflow_builder/frontend/src/components/MetricsDisplay/index.tsx; then
log_success "Correction MetricsDisplay.tsx appliquée"
else
log_warning "Correction MetricsDisplay.tsx non trouvée"
fi
# 4. Vérifier la configuration des ports dans les fichiers
log_info "Vérification de la configuration des ports..."
# VWB Backend doit utiliser le port 5002
if grep -q "port=int(os.getenv('PORT', 5002))" visual_workflow_builder/backend/app.py; then
log_success "VWB Backend configuré pour le port 5002"
else
log_warning "VWB Backend pourrait ne pas être configuré pour le port 5002"
fi
# Web Dashboard doit utiliser le port 5001
if grep -q "port=5001" web_dashboard/app.py; then
log_success "Web Dashboard configuré pour le port 5001"
else
log_warning "Web Dashboard pourrait ne pas être configuré pour le port 5001"
fi
# 5. Créer les répertoires de logs si nécessaire
log_info "Création des répertoires de logs..."
mkdir -p logs
touch logs/vwb_backend.log logs/vwb_frontend.log logs/main_backend.log
# 6. Démarrer les services dans l'ordre correct
log_info "Démarrage des services..."
# Démarrer le VWB Backend (port 5002)
log_info "Démarrage du VWB Backend sur le port 5002..."
cd visual_workflow_builder/backend
nohup python app.py > ../../logs/vwb_backend.log 2>&1 &
VWB_BACKEND_PID=$!
cd ../..
sleep 3
# Vérifier que le VWB Backend a démarré
if netstat -tlnp | grep ":5002 " > /dev/null; then
log_success "VWB Backend démarré sur le port 5002 (PID: $VWB_BACKEND_PID)"
else
log_error "Échec du démarrage du VWB Backend sur le port 5002"
cat logs/vwb_backend.log | tail -10
fi
# Démarrer le Frontend (port 3000)
log_info "Démarrage du Frontend sur le port 3000..."
cd visual_workflow_builder/frontend
nohup npm start > ../../logs/vwb_frontend.log 2>&1 &
FRONTEND_PID=$!
cd ../..
sleep 5
# Vérifier que le Frontend a démarré
if netstat -tlnp | grep ":3000 " > /dev/null; then
log_success "Frontend démarré sur le port 3000 (PID: $FRONTEND_PID)"
else
log_error "Échec du démarrage du Frontend sur le port 3000"
cat logs/vwb_frontend.log | tail -10
fi
# Le Web Dashboard et l'API Server sont déjà en cours d'exécution
# 7. Vérifier l'état final des services
log_info "Vérification de l'état final des services..."
echo ""
echo "État des ports:"
echo "==============="
for port in 3000 5001 5002 8000; do
if netstat -tlnp | grep ":$port " > /dev/null; then
log_success "Port $port: ✅ ACTIF"
else
log_error "Port $port: ❌ INACTIF"
fi
done
echo ""
echo "URLs des services:"
echo "=================="
echo "🌐 Frontend (VWB): http://localhost:3000"
echo "📊 Dashboard Web: http://localhost:5001"
echo "🔧 VWB Backend API: http://localhost:5002"
echo "🚀 API Principal: http://localhost:8000"
# 8. Test rapide des endpoints
log_info "Test des endpoints..."
echo ""
# Test API Principal
if curl -s http://localhost:8000/health > /dev/null; then
log_success "API Principal (8000): ✅ Répond"
else
log_error "API Principal (8000): ❌ Ne répond pas"
fi
# Test Web Dashboard
if curl -s http://localhost:5001/ > /dev/null; then
log_success "Web Dashboard (5001): ✅ Répond"
else
log_error "Web Dashboard (5001): ❌ Ne répond pas"
fi
# Test VWB Backend
if curl -s http://localhost:5002/health > /dev/null; then
log_success "VWB Backend (5002): ✅ Répond"
else
log_error "VWB Backend (5002): ❌ Ne répond pas"
fi
# Test Frontend (peut prendre plus de temps)
sleep 2
if curl -s http://localhost:3000/ > /dev/null; then
log_success "Frontend (3000): ✅ Répond"
else
log_warning "Frontend (3000): ⚠️ Peut encore être en cours de démarrage"
fi
echo ""
log_info "Correction terminée!"
echo ""
echo "📋 Résumé:"
echo "- Erreurs TypeScript corrigées"
echo "- Conflits de ports résolus"
echo "- Services redémarrés dans l'ordre"
echo "- Tests de connectivité effectués"
echo ""
echo "📝 Logs disponibles:"
echo "- tail -f logs/vwb_backend.log"
echo "- tail -f logs/vwb_frontend.log"
echo "- tail -f logs/main_backend.log"
echo ""
echo "🎯 Prochaines étapes:"
echo "1. Vérifier que tous les services répondent"
echo "2. Tester les fonctionnalités dans le navigateur"
echo "3. Vérifier les logs en cas de problème"