github komari-monitor/komari Snapshot-2607211357

pre-release12 hours ago

主要更新内容

  • 监控数据存储重构:运行期所有监控记录(含 GPU 和 Ping)全部迁移至统一的 metric store(默认 SQLite ./data/metrics.db,支持 MySQL/PostgreSQL),旧的 records/gpu_records/ping_records 表不再写入。
  • 新增首次安装引导流程:首次访问 Web 界面时将显示安装向导,管理员无需再通过环境变量或启动日志设置默认账号,配置站点信息与监控数据库在引导界面完成。
  • 移除内置 Cloudflare Tunnel 与 Cloudflare Access OAuth 支持cloudflared 二进制不再打包进 Docker 镜像;删除 UTCTime 自定义类型,所有时间字段统一使用标准 time.Time(UTC 存储)。
  • 新增访客审计事件 RPC 端点(PR #597)并加固日志写入(PR #602),支持通过 RPC 查询公开审计事件。
  • 新增 loong64 (LoongArch) 架构支持,构建和 Docker 镜像均包含该平台。
  • 大幅重构服务端启动生命周期:拆分为显式的 Bootstrap、InitStores、InitProviders、StartBackground、BuildRouter、Run、Shutdown 阶段,初始化顺序清晰且关闭可逆。
  • 废弃旧配置与参数:命令行标志 --db-host--db-port--db-user--db-pass--db-name 及对应的环境变量 KOMARI_DB_* 全部移除;旧的环境变量 ADMIN_USERNAME/ADMIN_PASSWORD 不再生效。
  • Metric store 永久启用:删除 metric_store_enabled 开关,默认及未配置时自动使用 SQLite ./data/metrics.db;支持热重载 DSN 并自动测试连接。
  • 新增数据库维护与压缩功能:支持通过 API 查看 SQLite 主库存储大小、执行 WAL checkpoint 和 VACUUM(API 已实现但后续 revert,此处保留基础设施)。
  • 新增主题市场来源管理与压缩包校验,支持从外部源下载并验证主题。
  • 新增低资源模式自动检测:在内存不足时自动优化 SQLite 性能参数。
  • 重构 CI/CD:将前端构建和 Zig 工具链提取为可复用的 GitHub Actions,所有工作流依赖该 Action,减少重复代码。

Bug修复

  • 安全修复:主题名称中存在路径遍历漏洞,影响 DeleteTheme/UpdateTheme/SetTheme 接口(PR #584)。感谢 @guocn 报告。
  • Telegram 通知:非 200 响应时,返回 API 错误描述而非仅状态码(PR #583)。
  • 数据库时间查询:修复因时间比较未使用 UTC 导致的时间查询错误,改进缓存清理(commit f0877d6)。
  • SQLite 写锁失败:修复监控记录写入时偶发的 database is locked 错误(commit 332053d)。
  • Metric 迁移表锁:避免迁移期间 SQLite 表锁导致服务异常(commit 64998b5)。
  • Metric 序列一致性:修复聚合查询时丢失 metric series 身份的问题(commit 8911c08)。
  • 迁移进度持久化:恢复迁移时保留已迁移进度计数,避免从零重新累计(commit 43c80d2)。
  • getNodes 返回结构:RPC common:getNodes 返回 uuid 为键的 map 而非数组,与旧客户端兼容(commit ff6daa6)。
  • Ping 记录使用 metric storeDeletePingRecords 会先清理 metric store 中的 ping 数据再删除任务,避免孤立记录。
  • 修正默认内置 metric 保留期:测试环境默认保留期从 90 天改为 1 天(commit c1178eb)。

其他

  • Snapshot 版本改用 UTC+8 时区:版本号格式 Snapshot-yymmddHHMM,与中文用户时区对齐。
  • CI 优化:新增 rebuild-release.yml 工作流,支持手动重建已发布的 Release 资产;快照工作流增加 concurrency 控制,避免重复构建;发布工作流自动根据 tag 选择对应 komari-web 前端版本。
  • Release Notes 生成:使用 AI 自动生成变更摘要,支持从稳定 tag 作为比较基准。
  • 移除 Nezha 协议兼容层:清理大量无用代码和废弃函数(如 CreateDefaultAdminAccountEditClientNameSaveReport 等)。
  • 日志系统替换:使用自定义 logger 替代标准库 log,强制 Gin 生产模式。

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-2607211357

Don't miss a new komari release

NewReleases is sending notifications on new releases.