v2.1: 新增通知提醒功能和安全增强

功能:
- 通知提醒系统: 还款日提醒、逾期提醒、系统消息横幅、登录时通知
- 通知中心UI: 铃铛图标 + 下拉列表 + 未读徽章
- 定时任务: APScheduler 每小时检查即将到期的还款
- 邮件通知: SMTP 发送还款提醒和安全警告
- 异常登录通知: 3/5/10次失败触发网页和邮件通知

安全:
- 登录安全告警: 异常登录次数达到阈值时发送通知
- 密码重置链接: 一次性使用, 5分钟有效期
- 登录频率限制: IP级和账户级限制

技术:
- 后端: FastAPI + SQLAlchemy + PostgreSQL
- 前端: 纯 HTML/CSS/JS
- 部署: Docker Compose (新增 build 配置)
This commit is contained in:
OP
2026-06-28 18:06:56 +08:00
commit ffca168dbe
41 changed files with 4834 additions and 0 deletions

47
restore.sh Executable file
View File

@@ -0,0 +1,47 @@
#!/bin/bash
# 债务管理系统 - 一键部署脚本
# 用法: bash restore.sh
set -e
cd "$(dirname "$0")"
echo "=============================="
echo " 债务管理系统 - 离线部署"
echo "=============================="
echo ""
echo "[1/4] 加载 Docker 镜像..."
for img in postgres-15-alpine.tar debt-manager-backend.tar debt-manager-frontend.tar; do
if [ -f "$img" ]; then
echo " 加载 $img ..."
docker load -i "$img"
else
echo " 跳过 $img (文件不存在)"
fi
done
echo "[2/4] 启动数据库..."
docker compose up -d db
echo " 等待数据库就绪..."
sleep 15
echo "[3/4] 恢复数据..."
if [ -f "data.sql" ]; then
docker compose exec -T db psql -U postgres debt_manager < data.sql
echo " 数据恢复完成"
else
echo " 跳过数据恢复 (无 data.sql)"
fi
echo "[4/4] 启动所有服务..."
docker compose up -d
echo ""
echo "=============================="
echo " 部署完成!"
echo "=============================="
echo ""
echo " 前台: http://localhost:806"
echo " 后台: http://localhost:806/admin.html"
echo " 管理员: admin / admin123"
echo ""