53 lines
1.7 KiB
Bash
53 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
# 宝塔 Python 项目 - 项目初始化命令
|
|
# 在面板填写: /www/wwwroot/douyin/backend/baota_init.sh
|
|
# 执行时机: 宝塔创建虚拟环境并 pip install requirements.txt 之后
|
|
set -euo pipefail
|
|
|
|
BACKEND="$(cd "$(dirname "$0")" && pwd)"
|
|
ROOT="$(cd "$BACKEND/.." && pwd)"
|
|
# shellcheck source=lib/resolve_python.sh
|
|
source "$BACKEND/lib/resolve_python.sh"
|
|
|
|
PY="$(resolve_python "$BACKEND" "$ROOT")"
|
|
ensure_uvicorn "$PY" "$BACKEND"
|
|
|
|
echo "========================================"
|
|
echo " 抖音客服 - 宝塔项目初始化"
|
|
echo " Python: $("$PY" -V 2>&1) @ $PY"
|
|
echo "========================================"
|
|
|
|
# 校验 Python
|
|
"$PY" -c "import ssl; print('[OK] OpenSSL:', ssl.OPENSSL_VERSION)"
|
|
|
|
echo "[1/4] Playwright Chromium..."
|
|
KEFU_PYTHON="$PY" bash "$BACKEND/baota_playwright.sh"
|
|
|
|
echo "[2/4] IM 签名 Node 依赖..."
|
|
if command -v npm &>/dev/null; then
|
|
cd "$BACKEND/rpa_engine/douyin_im/static"
|
|
npm install --no-fund --no-audit
|
|
else
|
|
echo "[警告] 未找到 npm,请宝塔安装 Node 18+ 后重新运行本脚本"
|
|
fi
|
|
|
|
echo "[3/4] 前端依赖与构建..."
|
|
if command -v npm &>/dev/null && [ -f "$ROOT/frontend/package.json" ]; then
|
|
cd "$ROOT/frontend"
|
|
npm install --no-fund --no-audit
|
|
npm run build
|
|
else
|
|
echo "[警告] 跳过前端构建"
|
|
fi
|
|
|
|
echo "[4/4] 校验..."
|
|
cd "$BACKEND"
|
|
"$PY" -c "import fastapi, uvicorn, playwright; print(' 核心包 OK')"
|
|
[ -f "$ROOT/frontend/dist/index.html" ] && echo " 前端静态 OK" || echo "[警告] 未找到 frontend/dist"
|
|
|
|
echo
|
|
echo "========================================"
|
|
echo " 宝塔初始化完成"
|
|
echo " 启动命令请用: bash $BACKEND/baota_start.sh"
|
|
echo "========================================"
|