#!/bin/bash """ Démarre le serveur API local pour le développement sur le port 8001. """ set -e echo "🚀 === DÉMARRAGE SERVEUR DÉVELOPPEMENT ===" # Vérifier que nous sommes dans le bon répertoire if [ ! -f "server/api_upload.py" ]; then echo "❌ Fichier server/api_upload.py non trouvé" echo " Veuillez exécuter ce script depuis la racine du projet" exit 1 fi # Vérifier l'environnement virtuel if [ ! -d "venv_v3" ]; then echo "❌ Environnement virtuel venv_v3 non trouvé" echo " Veuillez créer l'environnement virtuel avec: python3 -m venv venv_v3" exit 1 fi # Activer l'environnement virtuel echo "📦 Activation de l'environnement virtuel..." source venv_v3/bin/activate # Charger les variables d'environnement depuis .env.local if [ -f ".env.local" ]; then echo "📁 Chargement des variables d'environnement depuis .env.local" export $(grep -v '^#' .env.local | xargs) echo " ✓ RPA_TOKEN_ADMIN: ${RPA_TOKEN_ADMIN:0:16}..." else echo "⚠️ Fichier .env.local non trouvé, utilisation des valeurs par défaut" fi # Configurer le port pour éviter le conflit avec le serveur de production export PORT=8001 export HOST=127.0.0.1 echo "🌐 Configuration serveur:" echo " Host: $HOST" echo " Port: $PORT" echo " Token Admin: ${RPA_TOKEN_ADMIN:0:16}..." # Vérifier que le port est libre if netstat -tlnp 2>/dev/null | grep -q ":$PORT "; then echo "❌ Port $PORT déjà utilisé" echo " Arrêtez le processus utilisant ce port ou modifiez la variable PORT" exit 1 fi echo "✅ Port $PORT disponible" # Démarrer le serveur echo "🚀 Démarrage du serveur API..." cd server # Démarrer en arrière-plan et capturer le PID python3 api_upload.py & SERVER_PID=$! echo " PID du serveur: $SERVER_PID" echo " URL: http://$HOST:$PORT" # Attendre que le serveur démarre echo "⏳ Attente du démarrage du serveur..." for i in {1..15}; do sleep 1 if curl -s -f "http://$HOST:$PORT/health" >/dev/null 2>&1; then echo "✅ Serveur démarré avec succès!" break elif [ $i -eq 15 ]; then echo "❌ Le serveur n'a pas démarré dans les temps" kill $SERVER_PID 2>/dev/null || true exit 1 fi echo " Tentative $i/15..." done # Tester l'authentification echo "🔐 Test d'authentification..." AUTH_RESPONSE=$(curl -s -w "%{http_code}" -H "Authorization: Bearer $RPA_TOKEN_ADMIN" "http://$HOST:$PORT/api/traces/status") HTTP_CODE="${AUTH_RESPONSE: -3}" if [ "$HTTP_CODE" = "200" ]; then echo "✅ Authentification réussie!" # Mettre à jour .env.local avec la nouvelle URL du serveur if [ -f "../.env.local" ]; then sed -i "s|RPA_SERVER_URL=.*|RPA_SERVER_URL=http://$HOST:$PORT/api/traces/upload|" ../.env.local echo "✓ URL serveur mise à jour dans .env.local" fi echo "" echo "🎉 === SERVEUR DÉVELOPPEMENT PRÊT ===" echo "✅ Serveur API: http://$HOST:$PORT" echo "✅ Authentification: Fonctionnelle" echo "✅ PID: $SERVER_PID" echo "" echo "📝 PROCHAINES ÉTAPES:" echo "1. Démarrer l'agent v0: cd agent_v0 && python main.py" echo "2. Capturer une session de test" echo "3. Vérifier que l'upload fonctionne" echo "" echo "🛑 Pour arrêter le serveur: kill $SERVER_PID" # Sauvegarder le PID pour pouvoir l'arrêter plus tard echo $SERVER_PID > ../dev_server.pid echo " PID sauvegardé dans dev_server.pid" else echo "❌ Authentification échouée (HTTP $HTTP_CODE)" echo " Réponse: ${AUTH_RESPONSE%???}" kill $SERVER_PID 2>/dev/null || true exit 1 fi