110 lines
3.2 KiB
Bash
Executable File
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}"
|