THEKROLL-LTD/mirror-uptime-kuma

GitHub: THEKROLL-LTD/mirror-uptime-kuma

Uptime Kuma 的加固容器镜像镜像,通过从可信基础镜像完整重建并集成自动化漏洞扫描和 SBOM 生成,解决上游预构建镜像供应链透明度不足的问题。

Stars: 0 | Forks: 0

# mirror-uptime-kuma [louislam/uptime-kuma](https://github.com/louislam/uptime-kuma) 的加固容器镜像。THEKROLL 内部的 Uptime Kuma 镜像,作为参考构建公开发布。 ## 本仓库的作用 每天晚上,本仓库中的 GitHub Actions 流水线会: 1. 检查 `louislam/uptime-kuma` 是否有新的发布标签 2. 如果有,则克隆上游源码,**从 `node:22-bookworm-slim` 重新构建整个 Docker 镜像链**,而不是从 Docker Hub 拉取不透明的预构建 `louislam/uptime-kuma:base2` 系列镜像 3. 检测上游所有三个 Dockerfile(`docker/dockerfile`、`docker/debian-base.dockerfile`、`docker/builder-go.dockerfile`)是否发生了变动;如果自上次审查以来有任何更改,则通过创建 issue 进行阻断 4. 使用 Trivy(文件系统)扫描克隆的源码,并使用 Trivy(容器)扫描构建好的镜像;为两者生成 SBOM 5. 如果检查通过:推送到 `ghcr.io/thekroll-ltd/uptime-kuma` 并创建一个摘要锁定 (digest-pin) 的 PR 6. 如果发现异常:阻止推送,创建 issue,并保留完整的审计包 90 天 ## 镜像 `ghcr.io/thekroll-ltd/uptime-kuma:` 和 `ghcr.io/thekroll-ltd/uptime-kuma@sha256:`。 标签与上游 Uptime Kuma 的发布版本保持同步。摘要是权威的固定标识。 ## 与 `louislam/uptime-kuma` 的区别 - **所有基础镜像均从 `node:22-bookworm-slim` 自行构建**(已锁定摘要)。上游的 `:base2` 和 `:base2-slim` 是由 louislam 的 CI 在 Docker Hub 上预构建的;我们不依赖它们。 - **Go-healthcheck 二进制文件从 `golang:1.22-bookworm` 构建**,而不是上游已停止维护的 `golang:1-buster`。 - **默认以 `node` (UID 1000) 身份运行** —— 与上游的 `:rootless` 变体等效。上游默认的 `:release` 以 root 身份运行;我们不沿用这种做法。 - **没有功能缺失** —— chromium、mariadb-server、ping、apprise、cloudflared 以及所有字体均已包含。支持的监控类型完全相同。 - **单一架构** (linux/amd64)。上游提供 armv7+arm64+amd64 架构;我们移除了 armv7(cloudflared 的 apt 仓库不支持该架构),目前仅构建 amd64。 - 已填充 OCI 标签。 应用程序代码本身与上游字节等效 —— 未对源码进行任何补丁修改。 ## 自行构建基础镜像带来的好处 - **Apt 层 CVE 补丁节奏**:chromium 的修复会在 Debian 发布后(通常在几天内)立即出现在我们的镜像中,而不是等到 louislam 下次更新(可能需要数周)。 - **减少了一层信任依赖**:我们不依赖 louislam 的 Docker Hub 账户或 CI 基础设施来提供基础层。 - **可重现性**:每一层都由我们的流水线从锁定摘要的源码构建,并附带审计日志和 SBOM。 ## 我们明确 *不* 修复的问题 - **`package-lock.json` 中的 npm 层 CVE**:我们原封不动地镜像上游的 lockfile。`protobufjs`、`fast-xml-parser`、`tar` 等库中的 CVE 是否更新由上游决定。我们会在 `.trivyignore` 豁免规则中记录我们的分析,但不会覆盖版本号 —— 这将导致与上游行为的差异,而这超出了镜像仓库的范畴。 ## 无 SLA 保障 这是 THEKROLL 自己的内部构建,作为参考公开发布。不提供服务级别协议,没有支持承诺,也没有兼容性保证。 **对于生产环境的关键应用**,请复刻此模板并运行您自己的流水线:[THEKROLL-LTD/oss-mirror-build](https://github.com/THEKROLL-LTD/oss-mirror-build)。 ## 许可证 本仓库中的构建系统 —— 包括 workflow YAML、Dockerfile 覆盖、文档 —— 均在 Apache-2.0 许可下授权。参见 [`LICENSE`](LICENSE)。 此处生成的容器镜像包含 Uptime Kuma,它在 MIT 许可下授权。镜像继承 MIT 许可。参见 [`NOTICE.md`](NOTICE.md)。 ## 相关资源 - **上游:** [github.com/louislam/uptime-kuma](https://github.com/louislam/uptime-kuma) (MIT) - **本仓库复刻自的模板:** [THEKROLL-LTD/oss-mirror-build](https://github.com/THEKROLL-LTD/oss-mirror-build) (Apache-2.0) - **姊妹镜像:** [mirror-Gokapi](https://github.com/THEKROLL-LTD/mirror-Gokapi),[mirror-Plausible](https://github.com/THEKROLL-LTD/mirror-Plausible) ## 维护者 [THEKROLL](https://thekroll.ltd) —— 来自塞浦路斯的 DevOps 咨询公司。对于生产环境的关键应用,请勿依赖此镜像;请复刻模板并在 [`THEKROLL-LTD/oss-mirror-build`](https://github.com/THEKROLL-LTD/oss-mirror-build) 运行您自己的流水线。
标签:Debian, DevSecOps, Docker, GHCR, GitHub Actions, GNU通用公共许可证, IT运维, MITM代理, NIDS, Node.js, Rootless, SBOM, Socks5代理, Uptime Kuma, Web截图, 上游代理, 安全基线, 安全防御评估, 容器化, 容器安全, 容器镜像, 教学环境, 无根容器, 日志审计, 状态监控, 硬件无关, 自动笔记, 请求拦截, 跌倒检测, 软件物料清单, 镜像加固