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