#!/bin/bash # Start both frontend and backend servers # Usage: ./scripts/start_web.sh [frontend_port] [backend_port] FRONTEND_PORT=${1:-5173} BACKEND_PORT=${2:-8000} echo "==========================================" echo "BtToxin Pipeline Web Services" echo "==========================================" echo "Frontend: http://localhost:${FRONTEND_PORT}" echo "Backend: http://localhost:${BACKEND_PORT}" echo "==========================================" echo "" echo "Starting services..." # Create jobs directory if it doesn't exist mkdir -p jobs echo "Jobs directory: $(pwd)/jobs" # Start backend in background echo "[Backend] Starting FastAPI server on port ${BACKEND_PORT}..." uvicorn web.backend.main:app --reload --host 0.0.0.0 --port ${BACKEND_PORT} & BACKEND_PID=$! # Wait for backend to be ready sleep 2 # Start frontend echo "[Frontend] Starting Vite dev server on port ${FRONTEND_PORT}..." cd frontend && pnpm dev --host --port ${FRONTEND_PORT} & FRONTEND_PID=$! echo "" echo "==========================================" echo "Services started:" echo " - Backend (PID: ${BACKEND_PID}) on port ${BACKEND_PORT}" echo " - Frontend (PID: ${FRONTEND_PID}) on port ${FRONTEND_PORT}" echo "==========================================" echo "Press Ctrl+C to stop all services" echo "" # Wait for any process to exit wait