#!/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 "========================================"