轻量级 Web 界面,用于管理 Docker、Swarm、Podman、Kubernetes 和 ACI 容器环境。
sablierapp/sablier
按需启动容器等工作负载,空闲一段时间后自动停止,可配合反向代理使用。
- Star
- 3,114
- Fork
- 106
- 未关闭 Issue
- 68
- 最近提交
- 17小时前
这是什么?
Sablier 是一个可自托管的服务,收到请求时启动处于休眠状态的工作负载,并在无活动一段时间后将其关停。它支持 Docker、Docker Swarm、Podman、Kubernetes、Proxmox LXC 和 systemd 作为管理后端,同一套方案可以覆盖多种容器运行环境。
通常它会与 Traefik、Caddy、Nginx、Envoy、Apache APISIX 或 Istio 的反向代理插件配合使用。插件拦截请求后调用 Sablier API 唤醒目标服务,并在服务就绪前展示等待页面。会话既可以采用阻塞策略保持连接等待,也可以采用动态策略展示带主题的加载页面。
除了停止工作负载,Sablier 还提供 scale 模式,在空闲时限制 CPU、内存和块 I/O 而不是直接停止容器;反亲和(anti-affinity)功能则可让一组服务在另一组活跃时自动让出资源。此外还支持启停事件 webhook、Prometheus 指标和 OpenTelemetry 链路追踪。
核心功能
- 01按需启动和停止 Docker、Swarm、Podman、Kubernetes、Proxmox LXC 和 systemd 工作负载。
- 02通过代理插件与 Traefik、Caddy、Nginx、Envoy、Apache APISIX、Istio 集成。
- 03工作负载预热期间展示可自定义主题的等待页面。
- 04scale 模式在空闲时限制 CPU 和内存,而不是直接停止容器。
- 05实例启停时发送 webhook 通知。
- 06提供 Prometheus 指标和 OpenTelemetry 链路追踪。
适用场景
- 在树莓派上运行服务,让不常用的应用平时保持停止,访问时再启动。
- 让只偶尔使用的测试或预发布环境不占用资源。
- 将空闲的 Kubernetes Deployment 缩容到零以降低云成本。
- 让占用显存较多的服务在另一服务运行时自动让出资源。
快速上手
- 1
使用 Docker 运行 Sablier 服务端(使用 README 中的 compose.yaml)
docker run --name sablier -p 10000:10000 -v /var/run/docker.sock:/var/run/docker.sock sablierapp/sablier:1.10.5 start --provider.name=docker - 2
启动带有 Sablier 标签的演示容器
docker run -d --health-cmd "/mimic healthcheck" -p 8080:80 --name mimic --label sablier.enable=true --label sablier.group=demo sablierapp/mimic:v0.3.3 -running -running-after=5s -healthy=true -healthy-after=5s - 3
通过 Sablier API 为 demo 组请求一个会话
curl -v http://localhost:10000/api/strategies/blocking\?group\=demo\&session_duration\=20s
使用前须知
- 需要 Docker 套接字、Kubernetes API、Podman 或 Proxmox 环境才能管理工作负载。
- 要可靠地缩容至零,容器必须配置健康检查。
- 采用 AGPL-3.0 许可证,这是一种具有网络使用义务的 Copyleft 许可证。
收录于专题
标签
常见问题
- sablier 是什么?
- 按需启动容器等工作负载,空闲一段时间后自动停止,可配合反向代理使用。 Sablier 是一个可自托管的服务,收到请求时启动处于休眠状态的工作负载,并在无活动一段时间后将其关停。它支持 Docker、Docker Swarm、Podman、Kubernetes、Proxmox LXC 和 systemd 作为管理后端,同一套方案可以覆盖多种容器运行环境。
- sablier 可以免费使用吗?用的什么许可证?
- sablier 以 AGPL-3.0 许可证开源。用于商业产品前,请先确认许可证条款。
- sablier 还在维护吗?
- 活跃维护中。sablier 最近一次提交是在 2026年11月6日。
- sablier 适合用来做什么?
- 在树莓派上运行服务,让不常用的应用平时保持停止,访问时再启动。 让只偶尔使用的测试或预发布环境不占用资源。 将空闲的 Kubernetes Deployment 缩容到零以降低云成本。 让占用显存较多的服务在另一服务运行时自动让出资源。
- sablier 怎么安装和运行?
- 使用 Docker 运行 Sablier 服务端(使用 README 中的 compose.yaml): docker run --name sablier -p 10000:10000 -v /var/run/docker.sock:/var/run/docker.sock sablierapp/sablier:1.10.5 start --provider.name=docker 启动带有 Sablier 标签的演示容器: docker run -d --health-cmd "/mimic healthcheck" -p 8080:80 --name mimic --label sablier.enable=true --label sablier.group=demo sablierapp/mimic:v0.3.3 -running -running-after=5s -healthy=true -healthy-after=5s 通过 Sablier API 为 demo 组请求一个会话: curl -v http://localhost:10000/api/strategies/blocking\?group\=demo\&session_duration\=20s
- 在哪里获取 sablier?
- 源代码和安装说明在 GitHub 上:https://github.com/sablierapp/sablier
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
一个轻量级自托管 Docker 仪表盘,用于快速访问容器 Web 界面、查看日志、监控端口并检查镜像更新,支持多主机管理。
自托管的 Traefik 反向代理网页管理界面,无需手动编辑 YAML 即可管理路由、中间件、证书和日志。
面向家庭实验室的自动化部署工具,基于 Docker 和 Docker Compose,内置 160 多款预配置应用。
自动发现并展示经由 Traefik 路由的服务的现代化动态仪表盘。
带 WebUI 的轻量反向代理,可自动为 Docker 和 Podman 容器配置路由,并支持证书与休眠唤醒。