github komari-monitor/komari Snapshot-2607120101

pre-release3 hours ago

主要更新内容

  • 监控数据存储全面迁移至 metric store(默认 SQLite ./data/metrics.db,支持 MySQL/PostgreSQL),旧 recordsgpu_recordsping_records 表只作为迁移源,运行期读写全部走 metric store
  • 新增 metric store 热重载:保存配置后连接测试通过即自动切换后端,无需重启
  • 新增 metric store DSN 自动推断数据库驱动
  • 新增数据库维护 API:/api/v1/admin/database/vacuum(手动 VACUUM)和 /api/v1/admin/database/size(查询数据库文件大小)
  • 新增 store-to-store 迁移功能(WebUI 触发),支持暂停/恢复、进度持久化与重启后孤儿状态修复
  • 安装脚本 install-komari.sh 新增稳定版/快照版通道选择、TUI 交互支持(whiptail/dialog)
  • RPC 权限模型重构:引入 Principal 结构体,Admin 与 Agent 角色正交,消除越权路径
  • 敏感操作(如 admin:exec)在 RPC 边界强制要求双因素认证(2FA)
  • 移除内置 Cloudflare Tunnel 及 Cloudflare Access OAuth 支持(cloudflared 二进制与相关配置项、go-oidc/oauth2 依赖全部删除)
  • 启动流程重构为显式生命周期阶段(cmd/app.go),各阶段错误中止启动,关闭反序清理
  • 版本号使用 UTC+8 时间戳格式(Snapshot-yymmddhhMM

Bug修复

  • 修复主题操作(DeleteTheme/UpdateTheme/SetTheme)未校验短名称导致的路径穿越漏洞
  • 修复 Telegram 非 200 响应时仅返回状态码而未包含 API 错误描述
  • 修复 RPC common:getNodes 返回键值对而非数组导致节点顺序丢失(改为保留入参顺序)
  • 修复私有站点模式下临时分享链接被错误拦截
  • 修复 metric 聚合中系列身份(标签组合)未被正确保留,导致 GPU 多设备等带标签数据丢失
  • 修复 metric rollup 查询选择不兼容的间隔(超出保留范围时未上取整到下一级)
  • 修复 SQLite 并发写入时 database is locked 错误(通过优化锁粒度)
  • 修复启动迁移恢复时已迁移进度计数从零重新累计
  • 修复 metric store 迁移期间临时表锁定导致的失败

其他

  • CI 工作流重构:提取前端构建、Zig 工具链、前端部署为可复用 GitHub Actions
  • 新增 snapshot 自动发布工作流,主分支推送即构建快照并创建 Release
  • 使用 AI 生成发布说明时改用稳定版标签作为比较基线,改进上下文截断与格式化
  • 移除 go.mod 中废弃的 github.com/coreos/go-oidc/v3github.com/go-jose/go-jose/v4golang.org/x/oauth2 依赖
  • 旧的 record_enabledrecord_preserve_timeping_record_preserve_time 配置项废弃,由 metric_retention_days 统一替代
  • Docker 镜像发布改为手动触发并通过 build-frontend / build-docker-binaries 分阶段构建

What's Changed

  • fix(rpc): 在 RPC 边界强制对敏感操作进行双因素认证(2FA) by @carbofish in #571
  • fix: preserve node order in common:getNodes RPC by @yuanhhs in #566
  • feat: add database vacuum and size API endpoints by @Akizon77 in #578
  • fix(security): prevent path traversal in theme name (DeleteTheme/UpdateTheme/SetTheme) by @guocn in #584
  • fix(telegram): 非 200 响应时返回 API 错误描述而非仅状态码 by @Torther in #583

Commits

New Contributors

Full Changelog: 1.2.5...Snapshot-2607120101

Don't miss a new komari release

NewReleases is sending notifications on new releases.