FastAPI backend with auth, user, instance, ticket, query, dashboard APIs. React + TypeScript frontend with mock data UI (10 pages). SQLite + async SQLAlchemy, JWT auth, role-based access control. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
47 lines
1.1 KiB
Bash
Executable File
47 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
cd "$SCRIPT_DIR"
|
|
|
|
echo "=== Web-Lite 数据审核平台启动脚本 ==="
|
|
|
|
command -v python3 >/dev/null 2>&1 || { echo "需要 Python 3.11+"; exit 1; }
|
|
command -v node >/dev/null 2>&1 || { echo "需要 Node.js 18+"; exit 1; }
|
|
|
|
# Backend
|
|
echo "[1/4] 安装后端依赖..."
|
|
cd "$SCRIPT_DIR/backend"
|
|
if [ ! -d "venv" ]; then
|
|
python3 -m venv venv
|
|
fi
|
|
source venv/bin/activate
|
|
pip install -r requirements.txt -q
|
|
|
|
echo "[2/4] 启动后端 (http://localhost:9000)..."
|
|
python -m uvicorn app.main:app --host 0.0.0.0 --port 9000 --reload &
|
|
BACKEND_PID=$!
|
|
|
|
# Frontend
|
|
echo "[3/4] 安装前端依赖..."
|
|
cd "$SCRIPT_DIR/frontend"
|
|
if [ ! -d "node_modules" ]; then
|
|
npm install
|
|
fi
|
|
|
|
echo "[4/4] 启动前端 (http://localhost:5173)..."
|
|
npm run dev &
|
|
FRONTEND_PID=$!
|
|
|
|
echo ""
|
|
echo "=== 服务已启动 ==="
|
|
echo "前端: http://localhost:5173"
|
|
echo "后端: http://localhost:9000"
|
|
echo "API 文档: http://localhost:9000/docs"
|
|
echo "默认账号: admin / 123456"
|
|
echo ""
|
|
echo "按 Ctrl+C 停止所有服务"
|
|
|
|
trap "kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; exit 0" INT TERM
|
|
wait
|