新增虎牙账号和任务基础功能
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# ===== 本地调试启动脚本:后端 reload + 前端热更新 =====
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$ROOT_DIR"
|
||||
|
||||
if [ -f "$ROOT_DIR/.env" ]; then
|
||||
set -a
|
||||
# 调试模式复用 Docker 部署的环境变量,尤其是 JWT 和敏感字段加密密钥。
|
||||
# shellcheck disable=SC1091
|
||||
source "$ROOT_DIR/.env"
|
||||
set +a
|
||||
fi
|
||||
|
||||
BACKEND_HOST="${BACKEND_HOST:-0.0.0.0}"
|
||||
BACKEND_PORT="${BACKEND_PORT:-8000}"
|
||||
FRONTEND_HOST="${FRONTEND_HOST:-0.0.0.0}"
|
||||
FRONTEND_PORT="${FRONTEND_PORT:-5173}"
|
||||
LOG_LEVEL="${LOG_LEVEL:-DEBUG}"
|
||||
|
||||
BACKEND_PID=""
|
||||
FRONTEND_PID=""
|
||||
|
||||
cleanup() {
|
||||
trap - EXIT INT TERM
|
||||
if [ -n "$FRONTEND_PID" ] && kill -0 "$FRONTEND_PID" 2>/dev/null; then
|
||||
kill "$FRONTEND_PID" 2>/dev/null || true
|
||||
fi
|
||||
if [ -n "$BACKEND_PID" ] && kill -0 "$BACKEND_PID" 2>/dev/null; then
|
||||
kill "$BACKEND_PID" 2>/dev/null || true
|
||||
fi
|
||||
}
|
||||
|
||||
require_cmd() {
|
||||
if ! command -v "$1" >/dev/null 2>&1; then
|
||||
echo "缺少命令: $1"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
require_cmd uv
|
||||
require_cmd npm
|
||||
|
||||
mkdir -p data logs
|
||||
|
||||
echo ""
|
||||
echo "=============================="
|
||||
echo " 本地调试模式"
|
||||
echo "=============================="
|
||||
echo " 后端: http://${BACKEND_HOST}:${BACKEND_PORT}"
|
||||
echo " 前端: http://localhost:${FRONTEND_PORT}"
|
||||
echo " API 代理: http://127.0.0.1:${BACKEND_PORT}"
|
||||
echo " 退出: Ctrl+C"
|
||||
echo "=============================="
|
||||
echo ""
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
LOG_LEVEL="$LOG_LEVEL" \
|
||||
uv run uvicorn web.backend.main:app \
|
||||
--host "$BACKEND_HOST" \
|
||||
--port "$BACKEND_PORT" \
|
||||
--reload \
|
||||
--reload-dir core \
|
||||
--reload-dir utils \
|
||||
--reload-dir web/backend &
|
||||
BACKEND_PID=$!
|
||||
|
||||
(
|
||||
cd web/frontend
|
||||
VITE_BACKEND_TARGET="http://127.0.0.1:${BACKEND_PORT}" \
|
||||
npm run dev -- --host "$FRONTEND_HOST" --port "$FRONTEND_PORT"
|
||||
) &
|
||||
FRONTEND_PID=$!
|
||||
|
||||
while true; do
|
||||
if ! kill -0 "$BACKEND_PID" 2>/dev/null; then
|
||||
wait "$BACKEND_PID"
|
||||
exit $?
|
||||
fi
|
||||
if ! kill -0 "$FRONTEND_PID" 2>/dev/null; then
|
||||
wait "$FRONTEND_PID"
|
||||
exit $?
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
Reference in New Issue
Block a user