# 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. ```bash ./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. ```bash ./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. ```bash ./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). ```bash ./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:** ```bash # 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 ```bash # 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 ```bash # 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 ```bash # AprĂšs avoir modifiĂ© le code ./restart.sh # Ou manuellement ./stop.sh ./start.sh ``` ### Debugging ```bash # 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 ```bash # ArrĂȘter le serveur ./stop.sh # Supprimer les fichiers temporaires rm -f .server.pid server.log ``` --- ## DĂ©pannage ### Le serveur ne dĂ©marre pas ```bash # 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 ```bash # 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 ```bash # Supprimer le fichier PID rm .server.pid # VĂ©rifier l'Ă©tat ./status.sh # RedĂ©marrer si nĂ©cessaire ./start.sh ``` ### Logs trop volumineux ```bash # 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 ```bash # 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 ```bash #!/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 ```bash # 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 ```