初步增加, 扫码登录成功

This commit is contained in:
yml2213
2026-08-12 16:22:55 +08:00
parent 7db3b2cd4f
commit d19c0902f2
60 changed files with 7413 additions and 315 deletions
+59 -2
View File
@@ -35,9 +35,15 @@ DB_POOL_SIZE="${DB_POOL_SIZE:-20}"
DB_MAX_OVERFLOW="${DB_MAX_OVERFLOW:-20}"
DB_POOL_TIMEOUT="${DB_POOL_TIMEOUT:-30}"
DB_POOL_RECYCLE="${DB_POOL_RECYCLE:-1800}"
YYB_WORKER_PORT="${YYB_WORKER_PORT:-8810}"
YYB_WORKER_IMAGE="${YYB_WORKER_IMAGE:-douyu-yyb-worker:local}"
DEV_YYB_WORKER_URL="${DEV_YYB_WORKER_URL:-http://127.0.0.1:${YYB_WORKER_PORT}}"
YYB_WORKER_CONTAINER="${YYB_WORKER_CONTAINER:-douyu-yyb-worker-dev}"
YYB_WORKER_DATA_DIR="${YYB_WORKER_DATA_DIR:-$ROOT_DIR/data/yyb-worker-dev}"
BACKEND_PID=""
FRONTEND_PID=""
WORKER_STARTED_BY_DEV=false
stop_tree() {
local pid="$1"
@@ -56,6 +62,9 @@ cleanup() {
trap - EXIT INT TERM
stop_tree "$FRONTEND_PID"
stop_tree "$BACKEND_PID"
if [ "$WORKER_STARTED_BY_DEV" = true ]; then
docker stop "$YYB_WORKER_CONTAINER" >/dev/null 2>&1 || true
fi
}
require_cmd() {
@@ -108,6 +117,11 @@ if [ -z "$DB_PASSWORD" ]; then
exit 1
fi
if [ -z "${YYB_WORKER_KEY:-}" ]; then
echo "请先在 .env 中设置 YYB_WORKER_KEY"
exit 1
fi
COMPOSE=$(detect_compose)
if [ -z "$COMPOSE" ]; then
echo "缺少 docker compose"
@@ -117,6 +131,48 @@ BACKEND_PROXY_HOST="${BACKEND_PROXY_HOST:-$(detect_backend_proxy_host)}"
BACKEND_PROXY_TARGET="${VITE_BACKEND_TARGET:-http://${BACKEND_PROXY_HOST}:${BACKEND_PORT}}"
mkdir -p data logs
mkdir -p "$YYB_WORKER_DATA_DIR"
trap cleanup EXIT INT TERM
start_yyb_worker() {
if docker ps --format '{{.Names}}' | grep -qx "$YYB_WORKER_CONTAINER"; then
echo "本地 YYB Worker 已运行: ${DEV_YYB_WORKER_URL}"
return
fi
if docker ps -a --format '{{.Names}}' | grep -qx "$YYB_WORKER_CONTAINER"; then
echo "发现已停止的本地 YYB Worker,正在清理旧容器..."
docker rm "$YYB_WORKER_CONTAINER" >/dev/null
fi
echo "正在构建本地 YYB Worker..."
YYB_WORKER_KEY="$YYB_WORKER_KEY" $COMPOSE build yyb-worker
echo "正在启动本地 YYB Worker..."
docker run -d --rm \
--name "$YYB_WORKER_CONTAINER" \
-p "127.0.0.1:${YYB_WORKER_PORT}:8810" \
-e TZ="${TZ:-Asia/Shanghai}" \
-e YYB_WORKER_KEY="$YYB_WORKER_KEY" \
-v "$YYB_WORKER_DATA_DIR:/app/config/worker-jobs" \
"$YYB_WORKER_IMAGE" >/dev/null
WORKER_STARTED_BY_DEV=true
echo "等待本地 YYB Worker 就绪..."
for i in $(seq 1 15); do
if curl -fsS "${DEV_YYB_WORKER_URL}/health" >/dev/null 2>&1; then
echo "YYB Worker 已就绪"
return
fi
if [ "$i" = "15" ]; then
echo "YYB Worker 启动超时,查看日志:"
docker logs "$YYB_WORKER_CONTAINER" || true
exit 1
fi
sleep 1
done
}
start_yyb_worker
echo "正在启动本地 MySQL..."
MYSQL_IMAGE="$MYSQL_IMAGE" \
@@ -146,12 +202,11 @@ echo " 后端: http://${BACKEND_HOST}:${BACKEND_PORT}"
echo " 前端: http://localhost:${FRONTEND_PORT}"
echo " API 代理: ${BACKEND_PROXY_TARGET}"
echo " MySQL: ${DB_HOST}:${DB_PORT}/${DB_NAME}"
echo " YYB Worker: ${DEV_YYB_WORKER_URL}"
echo " 退出: Ctrl+C"
echo "=============================="
echo ""
trap cleanup EXIT INT TERM
DB_HOST="$DB_HOST" \
DB_PORT="$DB_PORT" \
DB_NAME="$DB_NAME" \
@@ -161,6 +216,8 @@ DB_POOL_SIZE="$DB_POOL_SIZE" \
DB_MAX_OVERFLOW="$DB_MAX_OVERFLOW" \
DB_POOL_TIMEOUT="$DB_POOL_TIMEOUT" \
DB_POOL_RECYCLE="$DB_POOL_RECYCLE" \
YYB_WORKER_URL="$DEV_YYB_WORKER_URL" \
YYB_WORKER_KEY="$YYB_WORKER_KEY" \
LOG_LEVEL="$LOG_LEVEL" \
uv run uvicorn web.backend.main:app \
--host "$BACKEND_HOST" \