74 lines
1.7 KiB
Bash
Executable File
74 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Exit on error
|
|
# set -e # Disable set -e because we want to continue if one service fails to start immediately or if lsof fails
|
|
|
|
# Get script directory
|
|
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
|
|
|
echo "=== Starting Nex Basse Services ==="
|
|
|
|
# --- Backend ---
|
|
echo "--- Setting up Backend ---"
|
|
cd "$SCRIPT_DIR/backend"
|
|
|
|
# Check/Activate virtual environment
|
|
if [ -d "venv" ]; then
|
|
echo "Activating venv..."
|
|
source venv/bin/activate
|
|
elif [ -d ".venv" ]; then
|
|
echo "Activating .venv..."
|
|
source .venv/bin/activate
|
|
else
|
|
echo "Warning: No virtual environment found (venv or .venv). Using system python."
|
|
fi
|
|
|
|
# Check backend port (8001)
|
|
BACKEND_PORT=8001
|
|
if lsof -i :$BACKEND_PORT -t >/dev/null ; then
|
|
echo "Port $BACKEND_PORT is in use. Killing process..."
|
|
kill -9 $(lsof -i :$BACKEND_PORT -t) || true
|
|
sleep 1
|
|
fi
|
|
|
|
# Start Backend
|
|
echo "Starting Backend (FastAPI)..."
|
|
python app/main.py &
|
|
BACKEND_PID=$!
|
|
echo "Backend PID: $BACKEND_PID"
|
|
|
|
# --- Frontend ---
|
|
echo "--- Setting up Frontend ---"
|
|
cd "$SCRIPT_DIR/frontend"
|
|
|
|
# Check frontend port (5173)
|
|
FRONTEND_PORT=5173
|
|
if lsof -i :$FRONTEND_PORT -t >/dev/null ; then
|
|
echo "Port $FRONTEND_PORT is in use. Killing process..."
|
|
kill -9 $(lsof -i :$FRONTEND_PORT -t) || true
|
|
sleep 1
|
|
fi
|
|
|
|
# Start Frontend
|
|
echo "Starting Frontend (Vite)..."
|
|
npm run dev &
|
|
FRONTEND_PID=$!
|
|
echo "Frontend PID: $FRONTEND_PID"
|
|
|
|
# --- Cleanup ---
|
|
cleanup() {
|
|
echo "Stopping services..."
|
|
kill $BACKEND_PID 2>/dev/null
|
|
kill $FRONTEND_PID 2>/dev/null
|
|
exit
|
|
}
|
|
|
|
trap cleanup SIGINT SIGTERM
|
|
|
|
echo "Both services started."
|
|
echo "Backend: http://localhost:$BACKEND_PORT"
|
|
echo "Frontend: http://localhost:$FRONTEND_PORT"
|
|
echo "Press Ctrl+C to stop."
|
|
|
|
wait $BACKEND_PID $FRONTEND_PID
|