Files
hsbg-ai/init_project.sh

140 lines
5.1 KiB
Bash
Raw Normal View History

2026-03-31 13:10:46 +02:00
#!/bin/bash
# =============================================================================
# HSBG AI ASSISTANT - Script d'initialisation
# Compatible: WSL (Ubuntu), Linux
# Usage: bash init_project.sh
# =============================================================================
set -e
# Couleurs
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
BLUE='\033[0;34m'; CYAN='\033[0;36m'; BOLD='\033[1m'; NC='\033[0m'
log_info() { echo -e "${BLUE}[INFO]${NC} $1"; }
log_ok() { echo -e "${GREEN}[ OK ]${NC} $1"; }
log_warn() { echo -e "${YELLOW}[WARN]${NC} $1"; }
log_error() { echo -e "${RED}[ERR ]${NC} $1"; }
log_step() { echo -e "\n${BOLD}${CYAN}━━━ $1 ━━━${NC}"; }
# =============================================================================
echo -e "${BOLD}${CYAN}"
echo " ╔═══════════════════════════════════════════════════════╗"
echo " ║ HSBG AI ASSISTANT - Initialisation ║"
echo " ║ Hearthstone Battlegrounds - Intelligence IA ║"
echo " ╚═══════════════════════════════════════════════════════╝"
echo -e "${NC}"
# =============================================================================
PROJECT_DIR="$(pwd)/hsbg_ai"
VENV_DIR="${PROJECT_DIR}/.venv"
# 1. Prérequis
log_step "VÉRIFICATION DES PRÉREQUIS"
command -v python3 >/dev/null 2>&1 || { log_error "Python3 requis (3.10+)"; exit 1; }
log_ok "Python $(python3 --version | grep -oP '\d+\.\d+') trouvé"
command -v pip3 >/dev/null 2>&1 || { log_error "pip3 requis"; exit 1; }
log_ok "pip3 trouvé"
HAS_NODE=0
if command -v node >/dev/null 2>&1; then
HAS_NODE=1
log_ok "Node.js $(node --version) trouvé"
else
log_warn "Node.js non trouvé - frontend sera lancé en mode dev séparé"
fi
# 2. Vérifier que le dossier projet existe (créé par les fichiers précédents)
log_step "VÉRIFICATION DU PROJET"
if [ ! -d "${PROJECT_DIR}" ]; then
log_error "Dossier ${PROJECT_DIR} introuvable. Assurez-vous que tous les fichiers sont extraits."
exit 1
fi
log_ok "Projet trouvé: ${PROJECT_DIR}"
# 3. Virtualenv Python
log_step "ENVIRONNEMENT PYTHON"
log_info "Création du virtualenv..."
python3 -m venv "${VENV_DIR}"
source "${VENV_DIR}/bin/activate"
pip install --upgrade pip setuptools wheel -q
log_ok "Virtualenv créé"
log_info "Installation des dépendances Python (5-10 minutes)..."
pip install -r "${PROJECT_DIR}/requirements.txt" -q --no-warn-script-location
log_ok "Dépendances Python installées"
# 4. Dépendances frontend
if [ "${HAS_NODE}" = "1" ]; then
log_step "FRONTEND NODE.JS"
cd "${PROJECT_DIR}/frontend"
npm install -q
log_ok "Dépendances npm installées"
cd - >/dev/null
fi
# 5. Initialisation de la base de données
log_step "BASE DE DONNÉES"
cd "${PROJECT_DIR}"
source "${VENV_DIR}/bin/activate"
python -m backend.database.seeds.seed_data
log_ok "Base de données HSBG initialisée"
cd - >/dev/null
# 6. Git
if command -v git >/dev/null 2>&1; then
log_step "INITIALISATION GIT"
cd "${PROJECT_DIR}"
git init -q
cat > .gitignore << 'GITEOF'
.venv/
__pycache__/
*.pyc
*.pyo
.env
data/hsbg_ai.db
data/screenshots/
data/learning/feedback/
data/learning/sessions/
logs/*.log
frontend/node_modules/
frontend/dist/
*.egg-info/
.DS_Store
Thumbs.db
GITEOF
git add .
git commit -m "feat: init HSBG AI project v1.0.0" -q
log_ok "Dépôt git initialisé"
cd - >/dev/null
fi
# =============================================================================
# RÉSUMÉ FINAL
# =============================================================================
echo ""
echo -e "${BOLD}${GREEN}╔═══════════════════════════════════════════════════════╗${NC}"
echo -e "${BOLD}${GREEN}║ ✅ INSTALLATION TERMINÉE AVEC SUCCÈS! ║${NC}"
echo -e "${BOLD}${GREEN}╚═══════════════════════════════════════════════════════╝${NC}"
echo ""
echo -e "${BOLD}📁 Projet:${NC} ${PROJECT_DIR}"
echo ""
echo -e "${BOLD}🚀 DÉMARRAGE (2 terminaux):${NC}"
echo -e " ${CYAN}Terminal 1 (Backend):${NC}"
echo -e " cd hsbg_ai && bash start_backend.sh"
echo ""
echo -e " ${CYAN}Terminal 2 (Frontend):${NC}"
echo -e " cd hsbg_ai && bash start_frontend.sh"
echo ""
echo -e "${BOLD}🌐 Accès:${NC}"
echo -e " Interface web: ${YELLOW}http://localhost:3000${NC}"
echo -e " API + Docs: ${YELLOW}http://localhost:8000/docs${NC}"
echo -e " Health check: ${YELLOW}http://localhost:8000/health${NC}"
echo ""
echo -e "${BOLD}🧠 LLM Local (optionnel, recommandé):${NC}"
echo -e " ${CYAN}1.${NC} curl -fsSL https://ollama.ai/install.sh | sh"
echo -e " ${CYAN}2.${NC} ollama pull llama3.2"
echo ""
echo -e "${BOLD}👁️ OCR Vision (optionnel):${NC}"
echo -e " sudo apt-get install tesseract-ocr tesseract-ocr-fra"
echo ""