- 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>
129 lines
4.1 KiB
Python
Executable File
129 lines
4.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Script de démarrage simple pour Visual Workflow Builder
|
|
Auteur : Dom, Alice, Kiro - 8 janvier 2026
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
import subprocess
|
|
import time
|
|
import requests
|
|
from pathlib import Path
|
|
|
|
def verifier_environnement():
|
|
"""Vérifie que l'environnement virtuel est activé"""
|
|
print("🔍 Vérification de l'environnement...")
|
|
|
|
# Vérifier Python
|
|
python_path = sys.executable
|
|
print(f"Python utilisé : {python_path}")
|
|
|
|
if "venv_v3" not in python_path:
|
|
print("⚠️ ATTENTION : Environnement virtuel venv_v3 non détecté")
|
|
return False
|
|
|
|
# Vérifier les dépendances critiques
|
|
try:
|
|
import flask
|
|
import mss
|
|
print(f"✅ Flask : {flask.__version__}")
|
|
print("✅ MSS : Disponible")
|
|
return True
|
|
except ImportError as e:
|
|
print(f"❌ Dépendance manquante : {e}")
|
|
return False
|
|
|
|
def tester_backend():
|
|
"""Teste la connectivité du backend"""
|
|
print("\n🔍 Test du backend...")
|
|
|
|
try:
|
|
response = requests.get("http://localhost:5003/api/real-demo/capture/status", timeout=5)
|
|
if response.status_code == 200:
|
|
print("✅ Backend accessible sur le port 5003")
|
|
data = response.json()
|
|
print(f" - Moniteurs détectés : {data['status']['monitors_count']}")
|
|
print(f" - Capture active : {data['status']['is_capturing']}")
|
|
return True
|
|
else:
|
|
print(f"❌ Backend répond avec le code : {response.status_code}")
|
|
return False
|
|
except requests.exceptions.RequestException as e:
|
|
print(f"❌ Backend inaccessible : {e}")
|
|
return False
|
|
|
|
def tester_frontend():
|
|
"""Teste la connectivité du frontend"""
|
|
print("\n🔍 Test du frontend...")
|
|
|
|
try:
|
|
response = requests.get("http://localhost:3000", timeout=5)
|
|
if response.status_code == 200:
|
|
print("✅ Frontend accessible sur le port 3000")
|
|
return True
|
|
else:
|
|
print(f"❌ Frontend répond avec le code : {response.status_code}")
|
|
return False
|
|
except requests.exceptions.RequestException as e:
|
|
print(f"❌ Frontend inaccessible : {e}")
|
|
return False
|
|
|
|
def demarrer_services():
|
|
"""Démarre les services si nécessaire"""
|
|
print("\n🚀 Démarrage des services...")
|
|
|
|
# Changer vers le répertoire du projet
|
|
os.chdir(Path(__file__).parent)
|
|
|
|
# Démarrer le backend si nécessaire
|
|
if not tester_backend():
|
|
print("Démarrage du backend...")
|
|
backend_cmd = [sys.executable, "backend/app.py"]
|
|
subprocess.Popen(backend_cmd, env={**os.environ, "PORT": "5003"})
|
|
time.sleep(3)
|
|
|
|
# Démarrer le frontend si nécessaire
|
|
if not tester_frontend():
|
|
print("Démarrage du frontend...")
|
|
frontend_cmd = ["npm", "start"]
|
|
subprocess.Popen(frontend_cmd, cwd="frontend")
|
|
time.sleep(5)
|
|
|
|
def main():
|
|
"""Fonction principale"""
|
|
print("🎯 Visual Workflow Builder - Diagnostic et Démarrage")
|
|
print("=" * 50)
|
|
|
|
# Vérifications
|
|
if not verifier_environnement():
|
|
print("\n❌ Environnement non conforme")
|
|
sys.exit(1)
|
|
|
|
# Tests de connectivité
|
|
backend_ok = tester_backend()
|
|
frontend_ok = tester_frontend()
|
|
|
|
if backend_ok and frontend_ok:
|
|
print("\n✅ Tous les services sont opérationnels !")
|
|
print("\n🌐 Accès utilisateur :")
|
|
print(" Frontend : http://localhost:3000")
|
|
print(" Backend : http://localhost:5003")
|
|
print("\n📋 Navigation :")
|
|
print(" 1. Ouvrir http://localhost:3000")
|
|
print(" 2. Naviguer vers 'Démonstration Réelle'")
|
|
print(" 3. Sélectionner 'Capture d'Écran Réelle'")
|
|
else:
|
|
print("\n⚠️ Certains services ne répondent pas")
|
|
demarrer_services()
|
|
|
|
# Re-test après démarrage
|
|
time.sleep(5)
|
|
if tester_backend() and tester_frontend():
|
|
print("\n✅ Services démarrés avec succès !")
|
|
else:
|
|
print("\n❌ Échec du démarrage des services")
|
|
sys.exit(1)
|
|
|
|
if __name__ == "__main__":
|
|
main() |