#!/bin/bash ROOT="$(cd "$(dirname "$0")" && pwd)" PORTS=(8000 5173) # --- Elibereaza porturile --- echo "Eliberez porturile..." for PORT in "${PORTS[@]}"; do PIDS=$(lsof -ti tcp:$PORT 2>/dev/null) if [ -n "$PIDS" ]; then echo " Port $PORT ocupat de PID(s): $PIDS — opresc..." kill -9 $PIDS 2>/dev/null else echo " Port $PORT liber." fi done # --- Backend --- echo "" echo "Pornesc backend-ul..." cd "$ROOT/backend" if [ ! -d ".venv" ]; then echo " Creez virtualenv..." python3 -m venv .venv fi source .venv/bin/activate echo " Instalez requirements..." pip install -q -r requirements.txt echo " Rulez migratiile..." PYTHONPATH="$ROOT/backend" alembic upgrade head 2>&1 || echo " Avertisment: migrare cu erori (verifica manual)" echo " Pornesc uvicorn pe portul 8000..." uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload & BACKEND_PID=$! # --- Frontend --- echo "" echo "Pornesc frontend-ul..." cd "$ROOT/frontend" echo " Instalez npm packages..." npm install --silent echo " Pornesc Vite pe portul 5173..." npm run dev & FRONTEND_PID=$! # --- Asteapta Ctrl+C --- echo "" echo "Servicii pornite. Apasa Ctrl+C pentru a opri." echo " Backend: http://localhost:8000" echo " Frontend: http://localhost:5173" echo "" trap "echo ''; echo 'Opresc serviciile...'; kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; exit 0" SIGINT SIGTERM wait