Files
2026-08-20 16:59:12 +08:00

64 lines
2.0 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/zsh
# 双击本文件,或在终端执行:./start.command
cd "$(dirname "$0")"
BACKEND_HOST="127.0.0.1"
BACKEND_PORT="8800"
BACKEND_URL="http://${BACKEND_HOST}:${BACKEND_PORT}"
STUDIO_URL="http://localhost:8900"
if [[ ! -d .venv ]]; then
echo "未找到 .venv,正在创建…"
python3 -m venv .venv || exit 1
fi
source .venv/bin/activate
# 每次启动都同步依赖,requirements.txt 有更新时自动补装(已装满时耗时极短)
pip install -q -r server/requirements.txt || exit 1
if [[ ! -f .env ]]; then
echo "未找到 .env,已从 .env.example 复制,请填入 DEEPSEEK_API_KEY 后再启动。"
cp .env.example .env
echo "按回车关闭…"
read -r
exit 1
fi
# ---- 同步并启动前端(studio:Vite 开发服务器,/api 代理到后端 8800----
STUDIO_PID=""
stop_studio() {
if [[ -n "$STUDIO_PID" ]] && kill -0 "$STUDIO_PID" 2>/dev/null; then
kill "$STUDIO_PID" 2>/dev/null
sleep 0.2
# 兜底:确保 vite 及其子进程退出
lsof -ti :8900 | xargs kill 2>/dev/null
fi
}
trap stop_studio EXIT
if ! command -v pnpm >/dev/null 2>&1; then
echo "⚠️ 未找到 pnpm,本次跳过 studio 前端(可手动:cd studio && pnpm dev"
# CI=truenode_modules 与 lockfile 不一致时自动重建,不弹确认
elif CI=true pnpm -C studio install --silent; then
pnpm -C studio dev & # vite:8900,启动后会自动打开浏览器
STUDIO_PID=$!
else
echo "⚠️ studio 依赖安装失败,本次只启动后端"
fi
echo
echo "前端访问地址:"
echo " 工具台 v1web/ $BACKEND_URL/ozonSeller.html"
echo " 发布工作台(studio/ $STUDIO_URL"
echo " 后端 API 文档 $BACKEND_URL/docs"
echo
echo "按 Ctrl+C 可停止全部服务"
echo
# --app-dir server 让 uvicorn 在 server/ 下找 main:app,工作目录仍是仓库根(.env 在此)
uvicorn main:app --app-dir server --reload --reload-include '*.yaml' --host "$BACKEND_HOST" --port "$BACKEND_PORT"
echo
echo "服务已停止。按回车关闭窗口…"
read -r