- 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>
6.6 KiB
Scripts de Gestion du Serveur - Complétés
Date
2 décembre 2024
Résumé
Création de scripts shell pour faciliter la gestion du serveur backend Flask du Visual Workflow Builder.
Scripts Créés
1. start.sh
Fonction: Démarre le serveur backend en arrière-plan
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 les informations de démarrage
- ✅ Vérifie que le démarrage a réussi
Utilisation:
cd visual_workflow_builder/backend
./start.sh
2. stop.sh
Fonction: Arrête le serveur backend proprement
Fonctionnalités:
- ✅ Arrêt gracieux (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
- ✅ Fonctionne même sans fichier PID
Utilisation:
cd visual_workflow_builder/backend
./stop.sh
3. status.sh
Fonction: Affiche l'état actuel du serveur
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
Utilisation:
cd visual_workflow_builder/backend
./status.sh
4. restart.sh
Fonction: Redémarre le serveur (stop + start)
Fonctionnalités:
- ✅ Arrête le serveur proprement
- ✅ Attend 2 secondes
- ✅ Redémarre le serveur
Utilisation:
cd visual_workflow_builder/backend
./restart.sh
5. SCRIPTS_USAGE.md
Fonction: Documentation complète des scripts
Contenu:
- Description détaillée de chaque script
- Exemples d'utilisation
- Guide de dépannage
- Intégration avec les tests
- Commandes rapides
Tests Effectués
Test 1: Démarrage du Serveur
./start.sh
Résultat: ✅ Serveur démarré avec succès (PID: 1236514)
Test 2: Vérification du Statut
./status.sh
Résultat: ✅ Affichage correct de toutes les informations
- Status: RUNNING ✓
- Process info: OK
- Port 5001: IN USE
- Health check: 200 OK ✓
Test 3: Arrêt du Serveur
./stop.sh
Résultat: ✅ Serveur arrêté gracieusement
Test 4: Vérification Après Arrêt
./status.sh
Résultat: ✅ Confirmation de l'arrêt
- Status: NOT RUNNING
- Port 5001: FREE
- Health check: Server not responding
Test 5: Redémarrage
./restart.sh
Résultat: ✅ Serveur redémarré avec succès (nouveau PID: 1237497)
Fichiers Générés par les Scripts
.server.pid
- Emplacement:
visual_workflow_builder/backend/.server.pid - Contenu: PID du processus serveur
- Gestion: Créé au démarrage, supprimé à l'arrêt
server.log
- Emplacement:
visual_workflow_builder/backend/server.log - Contenu: Tous les logs du serveur (stdout + stderr)
- Gestion: Créé au premier démarrage, append aux démarrages suivants
Avantages
Pour le Développement
- Démarrage Rapide: Un seul script au lieu de commandes complexes
- Logs Centralisés: Tous les logs dans un seul fichier
- Gestion Facile: Scripts intuitifs et bien documentés
- Debugging Simplifié: Script status pour diagnostiquer rapidement
Pour les Tests
- Automatisation: Facile d'intégrer dans des scripts de test
- Fiabilité: Gestion propre du démarrage/arrêt
- Isolation: Chaque test peut démarrer/arrêter le serveur
Pour la Production
- Gestion de Processus: PID file pour monitoring
- Logs Persistants: Historique complet des événements
- Arrêt Gracieux: Pas de perte de données
- Health Checks: Vérification automatique de l'état
Exemples d'Utilisation
Développement Quotidien
# Matin - Démarrer le serveur
./start.sh
# Pendant la journée - Vérifier l'état
./status.sh
# Après modifications - Redémarrer
./restart.sh
# Soir - Arrêter le serveur
./stop.sh
Tests Automatisés
# Script de test complet
./start.sh
sleep 2
python test_api_manual.py
./stop.sh
Debugging
# Démarrer et suivre les logs
./start.sh
tail -f server.log
# Dans un autre terminal
curl http://localhost:5001/api/workflows/
Monitoring
# Vérifier périodiquement
watch -n 5 './status.sh'
Intégration avec le Projet
Structure des Fichiers
visual_workflow_builder/backend/
├── start.sh ✅ Script de démarrage
├── stop.sh ✅ Script d'arrêt
├── status.sh ✅ Script de statut
├── restart.sh ✅ Script de redémarrage
├── SCRIPTS_USAGE.md ✅ Documentation
├── .server.pid (généré au runtime)
├── server.log (généré au runtime)
├── app.py (serveur Flask)
└── ...
Workflow de Développement
- Démarrage:
./start.sh - Développement: Modifier le code
- Redémarrage:
./restart.sh - Tests:
python test_api_manual.py - Arrêt:
./stop.sh
Compatibilité
Systèmes d'Exploitation
- ✅ Linux (testé sur Ubuntu/Debian)
- ✅ macOS (devrait fonctionner)
- ❌ Windows (nécessite WSL ou Git Bash)
Dépendances
- ✅ Bash shell
- ✅ Python 3.x dans venv_v3
- ✅ lsof (pour vérifier les ports)
- ✅ curl (optionnel, pour health checks)
- ✅ ps (pour vérifier les processus)
Améliorations Futures Possibles
Court Terme
- Support de variables d'environnement pour le port
- Rotation automatique des logs
- Notifications de démarrage/arrêt
Moyen Terme
- Support de plusieurs instances
- Intégration avec systemd
- Dashboard de monitoring
Long Terme
- Support Docker
- Déploiement automatisé
- Clustering
Notes Techniques
Gestion des Processus
- Utilisation de
nohuppour détacher le processus - Fichier PID pour tracking
- Signaux SIGTERM puis SIGKILL si nécessaire
Gestion des Ports
- Vérification avec
lsof - Nettoyage automatique des processus zombies
- Support de plusieurs processus sur le même port
Logs
- Redirection stdout et stderr vers fichier
- Pas de rotation automatique (à faire manuellement)
- Format standard Flask
Conclusion
Les scripts de gestion du serveur sont maintenant opérationnels et testés. Ils facilitent grandement le développement et les tests du Visual Workflow Builder en fournissant une interface simple et fiable pour gérer le serveur backend.
Prochaine étape: Continuer avec la Phase 2 du projet (Interface Canvas de Base).