Skip to content

v1.2.1 — 产品级加固

Choose a tag to compare

@doc2page doc2page released this 17 Aug 15:25
· 20 commits to main since this release

⚠️ 升级必读(部署行为变更)

  • 容器改为非 root 运行node, uid 1000)。若宿主 ./data 目录属主不是 uid 1000(群晖等 NAS 常见),升级后首次启动前执行一次:sudo chown -R 1000:1000 ./data,否则数据无法写入

🐳 Docker 产品级加固

  • 优雅退出docker stop/restart 时正确处理 SIGTERM——停止接新连接、SQLite WAL 落盘后退出(消除强制终止的数据库损坏风险)
  • 健康检查:镜像内置 HEALTHCHECK(/health 探活,30s 间隔),docker ps 可见 healthy 状态
  • 资源与日志限制:compose 默认 cpus 1.0 / mem 512M / 日志 10M×3(防长期运行日志吃满磁盘)

🔒 健壮性

  • 数据并发保护:掉落统计双写源(采集增量 + 手动导入)改原子读改写(state.mutate),并发时不再丢更新
  • SSE 心跳:30s 心跳防 NAT/反向代理静默掐断长连接(半开连接会静默丢推送)
  • 前端请求超时:所有 API 请求 30s 超时(防无限挂起)
  • 批量购买前置校验:未设预算池 / 可用额度不足时直接 toast(带行动指引与金额明细),不再打开模态

📖 文档

  • README 中英新增:数据备份与恢复(热备/稳备/损坏重建)、升级与回滚、安全注意事项(HTTP 明文警示 + Caddy 反代配置)、FAQ 五类排查

♿ 体验

  • 对比度达 WCAG AA(次级文字双主题提亮);模态焦点管理(打开聚焦、关闭归还触发元素);toast 读屏可感知(aria-live);错误文案附行动指引(余额/预算/令牌)
  • 持有卡片「锁定中」更名「冷却中」(与手动锁定区分概念,中英)

🐳 镜像:doc2page/mcard:1.2.1(amd64)

变更对比v1.2.0...v1.2.1