- 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>
5.8 KiB
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
- Environnement Virtuel: Les scripts utilisent automatiquement
../../venv_v3 - Port: Le serveur écoute sur le port 5001 (configurable dans
app.py) - Logs: Les logs sont écrits dans
server.log(rotation manuelle nécessaire) - PID: Le fichier
.server.pidest automatiquement nettoyé à l'arrêt - 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