diff --git a/start.sh b/start.sh new file mode 100755 index 0000000..8384473 --- /dev/null +++ b/start.sh @@ -0,0 +1,60 @@ +#!/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..." +alembic upgrade head + +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