Files
dy/start_web.sh
2026-07-23 17:56:25 +08:00

43 lines
1.2 KiB
Bash

#!/usr/bin/env bash
# 生产模式:确保前端已构建,单端口提供 Web + API
# 兼容:install.sh 自建的 .venv / 宝塔 Python 项目环境
set -euo pipefail
ROOT="$(cd "$(dirname "$0")" && pwd)"
cd "$ROOT"
export PLAYWRIGHT_BROWSERS_PATH="${PLAYWRIGHT_BROWSERS_PATH:-$ROOT/playwright-browsers}"
export KEFU_SERVE_WEB="${KEFU_SERVE_WEB:-true}"
export KEFU_STATIC_DIR="${KEFU_STATIC_DIR:-$ROOT/frontend/dist}"
PY=""
if [ -x "$ROOT/backend/.venv/bin/python" ]; then
PY="$ROOT/backend/.venv/bin/python"
elif command -v python &>/dev/null; then
PY="$(command -v python)"
fi
if [ -z "$PY" ]; then
echo "[错误] 未找到 Python,请运行 ./install.sh 或在宝塔配置 Python 项目"
exit 1
fi
if [ ! -f "$ROOT/frontend/dist/index.html" ]; then
echo "[System] 未找到 frontend/dist,正在构建前端..."
cd "$ROOT/frontend"
npm install --no-fund --no-audit
npm run build
cd "$ROOT"
fi
HOST="${KEFU_HOST:-0.0.0.0}"
PORT="${KEFU_PORT:-8000}"
echo "[System] Starting Web service (API + UI)..."
echo "[System] Python: $PY"
echo "[System] URL: http://${HOST}:${PORT}"
echo
cd "$ROOT/backend"
exec "$PY" -m uvicorn main:app --host "$HOST" --port "$PORT"