Files
2026-07-20 19:49:27 +08:00

54 lines
1.4 KiB
Bash
Executable File

#!/bin/bash
# 餐智库一键启动脚本
# 同时启动后端 API 服务和前端开发服务器
set -e
BACKEND_DIR="$(cd "$(dirname "$0")" && pwd)"
FRONTEND_DIR="$(cd "$(dirname "$0")/.." && pwd)"
echo "=== 餐智库启动 ==="
# 检查后端虚拟环境
if [ ! -d "$BACKEND_DIR/venv" ]; then
echo "[后端] 创建虚拟环境..."
python3 -m venv "$BACKEND_DIR/venv"
echo "[后端] 安装依赖..."
"$BACKEND_DIR/venv/bin/pip" install -r "$BACKEND_DIR/requirements.txt" -q
echo "[后端] 安装 Playwright 浏览器..."
"$BACKEND_DIR/venv/bin/playwright" install chromium
fi
# 检查 .env 文件
if [ ! -f "$BACKEND_DIR/.env" ]; then
echo "[后端] 复制 .env.example -> .env"
cp "$BACKEND_DIR/.env.example" "$BACKEND_DIR/.env"
echo "[提示] 请编辑 backend/.env 填入 DASHSCOPE_API_KEY"
fi
# 启动后端
echo "[后端] 启动 API 服务 (端口 8765)..."
"$BACKEND_DIR/venv/bin/python" "$BACKEND_DIR/app.py" &
BACKEND_PID=$!
echo "[后端] PID=$BACKEND_PID"
# 等待后端就绪
sleep 2
# 启动前端
echo "[前端] 启动开发服务器 (端口 3000)..."
cd "$FRONTEND_DIR"
npm run dev &
FRONTEND_PID=$!
echo "[前端] PID=$FRONTEND_PID"
echo ""
echo "=== 启动完成 ==="
echo "前端: http://localhost:3000"
echo "后端: http://localhost:8765/api/health"
echo ""
echo "按 Ctrl+C 停止所有服务"
trap "kill $BACKEND_PID $FRONTEND_PID 2>/dev/null; exit" INT TERM
wait