Files
jetson-agent/setup.sh

110 lines
3.2 KiB
Bash
Executable File

#!/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}"