39 lines
931 B
Bash
Executable File
39 lines
931 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
BACKEND_DIR="$ROOT_DIR/backend"
|
|
FRONTEND_DIR="$ROOT_DIR/frontend"
|
|
|
|
echo "=== Starting CalCount dev servers ==="
|
|
|
|
# Kill background processes on exit
|
|
cleanup() {
|
|
echo ""
|
|
echo "Shutting down..."
|
|
kill "$BACKEND_PID" "$FRONTEND_PID" 2>/dev/null || true
|
|
wait "$BACKEND_PID" "$FRONTEND_PID" 2>/dev/null || true
|
|
echo "Done."
|
|
}
|
|
trap cleanup EXIT SIGINT SIGTERM
|
|
|
|
# Start backend (FastAPI via uvicorn)
|
|
echo "[backend] uvicorn main:app --reload --host 0.0.0.0"
|
|
cd "$BACKEND_DIR"
|
|
uv run uvicorn main:app --reload --host 0.0.0.0 &
|
|
BACKEND_PID=$!
|
|
|
|
# Start frontend (Vite dev server with --host)
|
|
echo "[frontend] vite --host"
|
|
cd "$FRONTEND_DIR"
|
|
npm run dev:host &
|
|
FRONTEND_PID=$!
|
|
|
|
echo ""
|
|
echo " Backend: http://localhost:8000"
|
|
echo " Frontend: http://localhost:5173"
|
|
echo " Press Ctrl+C to stop both."
|
|
echo ""
|
|
|
|
# Wait for either process to exit
|
|
wait |