fix: 修复会话鉴权「登录后 token 无效」并补齐 NAS 部署流程
- deps.py: _create_redis_client 增加同步 ping 校验,Redis 不可达时正确降级为内存模式 - main.py: lifespan 复用 deps 的 UserStore 单例,避免 admin 与 API 请求实例不一致 - 前端: 强制改密弹窗(must_change_password 用户)、兼容新旧登录返回格式、markPasswordChanged - 新增 NAS SSH 部署脚本与批处理测试;gitignore 前端构建产物
This commit is contained in:
Executable
+58
@@ -0,0 +1,58 @@
|
||||
#!/usr/bin/env bash
|
||||
# =============================================================================
|
||||
# QMDSearch 文件变化监视器(纯轮询,无需 fswatch / inotifywait)
|
||||
#
|
||||
# 作用:持续监听仓库代码变化,实现「每次更新代码后自动检测」。
|
||||
# - 默认模式:检测到变化 → 本地跑测试 + 前端预构建 → 提示你运行 deploy.sh
|
||||
# - --auto 模式:检测到变化 → 直接调用 ./scripts/deploy.sh 全自动部署
|
||||
# (注意:--auto 会在保存即提交推送,慎用,建议确认改动完整后再用)
|
||||
#
|
||||
# 用法:
|
||||
# ./scripts/watch.sh 监听并本地校验,提示部署
|
||||
# ./scripts/watch.sh --auto 监听变化后全自动部署
|
||||
# ./scripts/watch.sh --interval 5 轮询间隔秒数(默认 3)
|
||||
# =============================================================================
|
||||
set -uo pipefail
|
||||
|
||||
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
cd "$ROOT"
|
||||
|
||||
AUTO=0
|
||||
INTERVAL=3
|
||||
while [[ $# -gt 0 ]]; do
|
||||
case "$1" in
|
||||
--auto) AUTO=1 ;;
|
||||
--interval) INTERVAL="${2:-3}"; shift ;;
|
||||
*) echo "未知参数: $1"; exit 2 ;;
|
||||
esac
|
||||
shift
|
||||
done
|
||||
|
||||
SNAPSHOT="$(mktemp)"
|
||||
record(){ git status --porcelain > "$SNAPSHOT"; }
|
||||
record
|
||||
|
||||
if [[ "$AUTO" -eq 1 ]]; then
|
||||
echo "[watch] 监听 $ROOT(AUTO 模式:变化即部署,间隔 ${INTERVAL}s,Ctrl-C 退出)"
|
||||
else
|
||||
echo "[watch] 监听 $ROOT(校验模式:变化即本地校验并提示,间隔 ${INTERVAL}s,Ctrl-C 退出)"
|
||||
fi
|
||||
|
||||
while true; do
|
||||
sleep "$INTERVAL"
|
||||
if ! git status --porcelain | diff -q - "$SNAPSHOT" >/dev/null 2>&1; then
|
||||
echo "[watch] $(date '+%H:%M:%S') 检测到代码变化"
|
||||
if [[ "$AUTO" -eq 1 ]]; then
|
||||
bash "$ROOT/scripts/deploy.sh"
|
||||
else
|
||||
echo "[watch] 运行本地校验..."
|
||||
uv run pytest -q --no-header 2>&1 | tail -n 10 || true
|
||||
if git status --porcelain | awk '{print $2}' | grep -qE '^frontend/'; then
|
||||
echo "[watch] 前端变化,本地预构建..."
|
||||
(cd frontend && npm ci --no-audit --no-fund && npm run build) 2>&1 | tail -n 5 || true
|
||||
fi
|
||||
echo "[watch] 校验完成。确认无误后运行: ./scripts/deploy.sh"
|
||||
fi
|
||||
record
|
||||
fi
|
||||
done
|
||||
Reference in New Issue
Block a user