#!/bin/bash # # Script d'installation et configuration de Jetson Agent API # Usage: ./setup.sh # set -e # Arrêter en cas d'erreur echo "🚀 Installation de Jetson Agent API" echo "====================================" echo "" # Couleurs pour l'affichage GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # Vérifier qu'on est dans le bon dossier if [ ! -f "requirements.txt" ]; then echo "❌ Erreur: requirements.txt non trouvé" echo " Assurez-vous d'être dans le dossier ~/projects/jetson-agent" exit 1 fi echo "📦 Étape 1: Création de l'environnement virtuel Python" echo "-------------------------------------------------------" # Créer venv s'il n'existe pas if [ ! -d ".venv" ]; then python3 -m venv .venv echo -e "${GREEN}✅ Environnement virtuel créé${NC}" else echo -e "${YELLOW}⚠️ Environnement virtuel existe déjà${NC}" fi # Activer venv source .venv/bin/activate echo -e "${GREEN}✅ Environnement virtuel activé${NC}" echo "" echo "📚 Étape 2: Installation des dépendances Python" echo "-----------------------------------------------" pip install --upgrade pip pip install -r requirements.txt echo -e "${GREEN}✅ Dépendances installées${NC}" echo "" echo "⚙️ Étape 3: Configuration" echo "-------------------------" # Créer dossier config s'il n'existe pas mkdir -p config mkdir -p logs # Copier example.env vers .env si pas existant if [ ! -f ".env" ]; then if [ -f "config/example.env" ]; then cp config/example.env .env echo -e "${GREEN}✅ Fichier .env créé${NC}" # Générer une clé JWT secrète JWT_SECRET=$(openssl rand -hex 32) sed -i "s/CHANGE_ME_GENERATE_WITH_openssl_rand_hex_32/$JWT_SECRET/" .env echo -e "${GREEN}✅ Clé JWT générée${NC}" else echo -e "${YELLOW}⚠️ example.env non trouvé, .env non créé${NC}" fi else echo -e "${YELLOW}⚠️ Fichier .env existe déjà (non modifié)${NC}" fi # Vérifier allowed_paths.yaml if [ ! -f "config/allowed_paths.yaml" ]; then echo -e "${YELLOW}⚠️ config/allowed_paths.yaml manquant${NC}" else echo -e "${GREEN}✅ config/allowed_paths.yaml présent${NC}" fi echo "" echo "🧪 Étape 4: Test de l'installation" echo "----------------------------------" # Tester l'import Python python3 -c "import fastapi; print('✅ FastAPI OK')" 2>/dev/null || echo "❌ FastAPI manquant" python3 -c "import uvicorn; print('✅ Uvicorn OK')" 2>/dev/null || echo "❌ Uvicorn manquant" python3 -c "import pydantic; print('✅ Pydantic OK')" 2>/dev/null || echo "❌ Pydantic manquant" python3 -c "import yaml; print('✅ PyYAML OK')" 2>/dev/null || echo "❌ PyYAML manquant" echo "" echo "✨ Installation terminée !" echo "==========================" echo "" echo "📝 Prochaines étapes:" echo "" echo "1. Vérifier/adapter la configuration:" echo " nano .env" echo " nano config/allowed_paths.yaml" echo "" echo "2. Lancer l'API en mode développement:" echo " source .venv/bin/activate" echo " cd src" echo " uvicorn jetson_agent.main:app --reload --host 0.0.0.0 --port 8000" echo "" echo "3. Accéder à la documentation:" echo " http://localhost:8000/docs" echo "" echo -e "${GREEN}🎉 Prêt à démarrer !${NC}"