github komari-monitor/komari Snapshot-2607202313

pre-releaseone day ago

主要更新内容

  • 指标存储重构:新增 Metric Store(默认 SQLite,支持 MySQL/PostgreSQL),统一存储指标数据;自动迁移旧 records/gpu_records/ping_records 表数据;支持分层降采样与自定义保留策略。
  • 删除旧指标表运行期读写:移除 records/gpu_records/ping_records 表及相关代码,运行期全部走 Metric Store。
  • 访客审计端点:新增 public:recordVisitorEvent RPC,支持主题端上报访客事件,并由后端限流(令牌桶,默认关闭)。
  • 主题市场管理:新增主题市场源码管理与压缩包校验功能。
  • 架构支持:新增 loong64(龙芯)Linux 二进制构建。
  • 配置热重载:Metric DB 配置保存前自动测试连接,通过后热生效。
  • 低资源模式:自动检测低内存环境并应用 SQLite 调优(WAL 模式、连接池限制)。
  • 删除废弃功能:移除内置 Cloudflare Tunnel(Docker 镜像不再包含 cloudflared)、移除 Cloudflare Access OAuth Provider、移除 Nezha 兼容层、移除已废弃的数据库命令行参数(--db-host/--db-port 等)。
  • 时间字段统一:所有模型时间字段统一为 time.Time(UTC),移除自定义 LocalTime 类型。
  • CI/CD 重构:前端构建提取为可复用 Action,正式发布与快照构建统一流程;新增“重构建已有 Release”工作流;快照版本改为 UTC+8 生成。
  • 数据库维护 API:新增检查 SQLite 空间与执行 VACUUM 的管理端点。

Bug修复

  • 安全:修复 DeleteTheme/UpdateTheme/SetTheme 中的路径遍历漏洞(PR #584)。
  • Telegram 通知:非 200 响应时返回 API 错误描述,而非仅有状态码(PR #583)。
  • 访客审计:加强日志字段校验与限流,防止伪造 IP 与恶意写入(PR #602)。
  • 指标数据:修复聚合时时序标识丢失问题;修复零保留指标的配置被覆盖问题;修复 compaction 中 per-metric 失败导致整个停摆的问题。
  • getNodes RPC:返回 uuid 作为 key 的 Map 而非数组,避免前端解析错误。
  • SQLite 并发:修复指标写入时的 database is locked 错误,优化迁移性能(批量写入 + keyset 分页)。
  • 磁盘基准测试:使用对齐的非缓冲 I/O 避免测量偏差。
  • Docker 镜像:修复 latest 标签仅指向最新正式版;修复维护版本的前端匹配问题。

其他

  • 启动流程重构为显式的 BootstrapInitStoresInitProvidersStartBackgroundBuildRouterRun 生命周期。
  • 新增 visitor-audit-rpc.md 文档说明访客审计接口用法。
  • 移除大量已废弃的数据库函数与测试,清理代码库。
  • 重命名 Release workflow,支持手动指定 Docker 标签与前端版本。

What's Changed

  • fix(security): prevent path traversal in theme name (DeleteTheme/UpdateTheme/SetTheme) by @guocn in #584
  • fix(telegram): 非 200 响应时返回 API 错误描述而非仅状态码 by @Torther in #583
  • feat(rpc): add public visitor audit event endpoint by @sanrokamlan-prog in #597
  • fix: harden visitor audit logging by @sanrokamlan-prog in #602

Commits

New Contributors

Full Changelog: 1.2.5-fix2...Snapshot-2607202313

Don't miss a new komari release

NewReleases is sending notifications on new releases.