Spaces:
Running
Running
| # dev.sh โ lance backend + frontend en mode dev avec hot reloading | |
| # Usage: ./dev.sh | |
| set -e | |
| ROOT="$(cd "$(dirname "$0")" && pwd)" | |
| # โโ Couleurs โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| CYAN='\033[0;36m' | |
| GREEN='\033[0;32m' | |
| YELLOW='\033[1;33m' | |
| RESET='\033[0m' | |
| log() { echo -e "${CYAN}[dev]${RESET} $*"; } | |
| ok() { echo -e "${GREEN}[dev]${RESET} $*"; } | |
| warn(){ echo -e "${YELLOW}[dev]${RESET} $*"; } | |
| # โโ Vรฉrifications prรฉalables โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| [ -f "$ROOT/.env" ] || { warn ".env manquant โ copie .env.example et remplis MISTRAL_API_KEY"; exit 1; } | |
| command -v python3 &>/dev/null || { warn "python3 introuvable"; exit 1; } | |
| command -v npm &>/dev/null || { warn "npm introuvable"; exit 1; } | |
| # โโ Dรฉpendances Python โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| log "Vรฉrification des dรฉpendances Pythonโฆ" | |
| pip install -q -r "$ROOT/backend/requirements.txt" | |
| # โโ Dรฉpendances Node โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| if [ ! -d "$ROOT/frontend/node_modules" ]; then | |
| log "Installation des dรฉpendances Nodeโฆ" | |
| npm --prefix "$ROOT/frontend" install | |
| fi | |
| # โโ Cleanup ร l'arrรชt (Ctrl+C) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| cleanup() { | |
| echo "" | |
| log "Arrรชtโฆ" | |
| kill "$BACKEND_PID" "$FRONTEND_PID" 2>/dev/null || true | |
| wait "$BACKEND_PID" "$FRONTEND_PID" 2>/dev/null || true | |
| ok "Stoppรฉ." | |
| } | |
| trap cleanup INT TERM | |
| # โโ Backend โ uvicorn avec --reload โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| log "Dรฉmarrage backend โ http://localhost:8000" | |
| ( | |
| cd "$ROOT/backend" | |
| set -a; source "$ROOT/.env"; set +a | |
| DEBUG=true uvicorn main:app --reload --host 0.0.0.0 --port 8000 2>&1 | sed 's/^/\033[0;33m[back]\033[0m /' | |
| ) & | |
| BACKEND_PID=$! | |
| # โโ Frontend โ vite dev avec proxy vers le backend โโโโโโโโโโโโโโโโโโโโโโโโโโโโ | |
| log "Dรฉmarrage frontend โ http://localhost:5173" | |
| ( | |
| cd "$ROOT/frontend" | |
| npm run dev -- --host 2>&1 | sed 's/^/\033[0;35m[front]\033[0m /' | |
| ) & | |
| FRONTEND_PID=$! | |
| ok "Backend : http://localhost:8000" | |
| ok "Frontend : http://localhost:5173" | |
| ok "Ctrl+C pour tout arrรชter." | |
| echo "" | |
| wait "$BACKEND_PID" "$FRONTEND_PID" | |