nex_basse/start.sh

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