Files
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

5.8 KiB

Scripts de Gestion du Serveur Backend

Ce dossier contient des scripts shell pour faciliter la gestion du serveur backend Flask.

Scripts Disponibles

🚀 start.sh

Démarre le serveur backend en arrière-plan.

./start.sh

Fonctionnalités:

  • Vérifie si le serveur est déjà en cours d'exécution
  • Démarre le serveur sur le port 5001
  • Crée un fichier PID (.server.pid)
  • Redirige les logs vers server.log
  • Affiche l'URL et les informations de démarrage

Sortie:

==========================================
Visual Workflow Builder - Backend Server
==========================================
Starting backend server...
  - Port: 5001
  - Log file: /path/to/server.log
  - PID file: /path/to/.server.pid
✓ Server started successfully!
  - PID: 12345
  - URL: http://localhost:5001
  - Health check: http://localhost:5001/health

To view logs: tail -f /path/to/server.log
To stop server: ./stop.sh

🛑 stop.sh

Arrête le serveur backend proprement.

./stop.sh

Fonctionnalités:

  • Arrêt gracieux du serveur (SIGTERM)
  • Force l'arrêt si nécessaire (SIGKILL après 5 secondes)
  • Nettoie le fichier PID
  • Tue tous les processus sur le port 5001 si nécessaire
  • Fonctionne même si le fichier PID n'existe pas

Sortie:

==========================================
Visual Workflow Builder - Stop Server
==========================================
Stopping server (PID: 12345)...
✓ Server stopped gracefully

📊 status.sh

Affiche l'état actuel du serveur.

./status.sh

Fonctionnalités:

  • Vérifie si le processus est en cours d'exécution
  • Affiche les informations du processus (CPU, mémoire, durée)
  • Vérifie l'état du port 5001
  • Effectue un health check HTTP
  • Affiche les 10 dernières lignes du log

Sortie:

==========================================
Visual Workflow Builder - Server Status
==========================================
PID File: /path/to/.server.pid
PID: 12345
Status: RUNNING ✓

Process Information:
  PID  PPID USER     %CPU %MEM     ELAPSED COMMAND
12345  1234 user      0.5  1.2    00:05:23 python app.py

Port 5001 Status:
  Port 5001: IN USE
  Process(es) using port 5001:
  python  12345 user   5u  IPv4 0x... TCP *:5001 (LISTEN)

Health Check:
  HTTP Response: 200 OK ✓
  Server is responding correctly

Recent Log Entries (last 10 lines):
-----------------------------------
[log entries...]

🔄 restart.sh

Redémarre le serveur (stop + start).

./restart.sh

Fonctionnalités:

  • Arrête le serveur proprement
  • Attend 2 secondes
  • Redémarre le serveur

Fichiers Générés

.server.pid

Fichier contenant le PID du processus serveur. Utilisé pour gérer le serveur.

Emplacement: visual_workflow_builder/backend/.server.pid

Contenu: Un seul nombre (le PID)

12345

server.log

Fichier de log contenant toutes les sorties du serveur (stdout et stderr).

Emplacement: visual_workflow_builder/backend/server.log

Utilisation:

# Voir les logs en temps réel
tail -f server.log

# Voir les 50 dernières lignes
tail -n 50 server.log

# Rechercher des erreurs
grep -i error server.log

# Vider le fichier de log
> server.log

Exemples d'Utilisation

Démarrage Normal

# Démarrer le serveur
./start.sh

# Vérifier qu'il fonctionne
./status.sh

# Tester l'API
curl http://localhost:5001/health

Développement avec Logs

# Démarrer le serveur
./start.sh

# Ouvrir un autre terminal et suivre les logs
tail -f server.log

# Faire des requêtes API et voir les logs en temps réel
curl -X POST http://localhost:5001/api/workflows/ \
  -H "Content-Type: application/json" \
  -d '{"name": "Test", "created_by": "user"}'

Redémarrage Après Modifications

# Après avoir modifié le code
./restart.sh

# Ou manuellement
./stop.sh
./start.sh

Debugging

# Vérifier l'état
./status.sh

# Si le serveur ne répond pas
./stop.sh
./start.sh

# Voir les erreurs récentes
tail -n 100 server.log | grep -i error

Nettoyage Complet

# Arrêter le serveur
./stop.sh

# Supprimer les fichiers temporaires
rm -f .server.pid server.log

Dépannage

Le serveur ne démarre pas

# Vérifier si le port est déjà utilisé
lsof -i:5001

# Tuer le processus sur le port 5001
kill $(lsof -ti:5001)

# Réessayer
./start.sh

Le serveur ne s'arrête pas

# Forcer l'arrêt
./stop.sh

# Si ça ne fonctionne pas, tuer manuellement
kill -9 $(cat .server.pid)
rm .server.pid

Fichier PID obsolète

# Supprimer le fichier PID
rm .server.pid

# Vérifier l'état
./status.sh

# Redémarrer si nécessaire
./start.sh

Logs trop volumineux

# Vider le fichier de log
> server.log

# Ou le supprimer
rm server.log

# Le fichier sera recréé au prochain démarrage

Intégration avec les Tests

Lancer les tests avec le serveur

# Démarrer le serveur
./start.sh

# Attendre qu'il soit prêt
sleep 2

# Lancer les tests
python test_api_manual.py

# Arrêter le serveur
./stop.sh

Script de test complet

#!/bin/bash
./start.sh
sleep 2
python test_api_manual.py
TEST_RESULT=$?
./stop.sh
exit $TEST_RESULT

Notes Importantes

  1. Environnement Virtuel: Les scripts utilisent automatiquement ../../venv_v3
  2. Port: Le serveur écoute sur le port 5001 (configurable dans app.py)
  3. Logs: Les logs sont écrits dans server.log (rotation manuelle nécessaire)
  4. PID: Le fichier .server.pid est automatiquement nettoyé à l'arrêt
  5. Permissions: Les scripts doivent être exécutables (chmod +x *.sh)

Commandes Rapides

# Démarrer
./start.sh

# Arrêter
./stop.sh

# État
./status.sh

# Redémarrer
./restart.sh

# Logs en temps réel
tail -f server.log

# Health check
curl http://localhost:5001/health