140 lines
5.1 KiB
Bash
140 lines
5.1 KiB
Bash
#!/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 ""
|