Zoomies:把自托管 GitHub Actions runner 做成一次性机群,还带实时 Web UI
自托管 GitHub Actions runner 的痛点通常不在"能不能跑",而在"跑完之后谁来清理、扩缩容怎么做、runner 被污染了怎么办"。Zoomies 是一个免费、开源的 runner fleet controller(自托管 runner 机群控制器),目标是把这套事做得省心一点:在你自己的硬件上跑构建,而不是把 job 交给托管 runner。
- 官网:
- 源码:
它提供什么
- ephemeral runners:一次性 runner,每个 job 用完整生命周期,跑完即弃。
- autoscaling:在你自己的主机之间自动伸缩。
- 实时 Web UI:机群状态可直接在浏览器里看。
- migration wizard:迁移向导会打开一个可审查的 pull request 来帮你迁移配置——改动进代码评审流程,而不是黑盒生效。
对于已经在自建 runner 上被"残留状态导致偶发失败"折磨过的团队,ephemeral runner 是最值得关注的一点;Web UI 和迁移向导属于降低上手摩擦的部分。
安装
macOS / Linux 一条命令:
curl -fsSL https://zoomies.sh/install.sh | sh
curl | sh 的取舍还是老问题:省事,但执行前你看不到脚本内容。生产环境里建议先把脚本拉下来读一遍再执行,或者走官网给出的其他安装路径。快速开始和 Web UI 截图都在官网上。
许可证
AGPL-3.0。如果你的场景是把修改后的版本作为网络服务对外提供,需要留意 AGPL 的源码开放义务;内部自用则相对宽松。选型前建议把这条和法务确认一遍。
默认安全设置与风险
目前 Zoomies 处于 early beta,初期只建议用于你信任的工作负载。默认包含:
- ephemeral runners
- 认证
- 不带 host Docker socket 访问权限的容器作业
最后一条是默认配置里的关键:容器作业默认拿不到宿主机的 Docker socket。别为了图方便随手挂上它——挂上等于把宿主机控制权交给 job。
需要明确的边界是:自托管 job 仍然会执行仓库里的代码。runner 是 ephemeral 并不等于代码可信,任何人能往仓库推 commit 或提 PR,就等价于能在你的机器上跑东西。部署前应阅读其官方安全指南(security guide),确认网络隔离、凭据范围和 runner 权限是否符合你的威胁模型。
落地建议
先只接一个仓库、一个 pool 试用。这样出问题时影响面可控,也方便观察 ephemeral runner 的启动延迟、autoscaling 在真实负载下的反应,以及 Web UI 反馈的状态是否和实际一致。early beta 阶段不适合直接把关键发布流水线整体切过去。
如果试用顺利,再按仓库逐个迁移,并保留一段时间的回退路径。