Docker、Swarm、Podman、Kubernetes、ACI環境を管理できる軽量なWeb UI。
sablierapp/sablier
リクエストに応じてコンテナなどのワークロードを起動し、一定時間アクセスがなければ停止します。リバースプロキシとも連携します。
- スター
- 3,114
- フォーク
- 106
- 未解決の Issue
- 68
- 最終コミット
- 21 時間前
これは何?
Sablierはセルフホスト型サーバーです。リクエストが届くと休止中のワークロードを起動し、設定した時間アクセスがなければ停止します。プロバイダーとしてDocker、Docker Swarm、Podman、Kubernetes、Proxmox LXC、systemdに対応しているため、さまざまなコンテナランタイムやホストで同じ方法を利用できます。
通常、SablierはTraefik、Caddy、Nginx、Envoy、Apache APISIX、Istio向けのリバースプロキシプラグインと組み合わせて使います。プラグインは受信リクエストを横取りし、Sablier APIを呼び出して対象サービスを起動してから、準備が整うまで待機ページを表示します。セッションには、接続を維持して待つブロッキング方式と、テーマを適用したローディングページを表示する動的方式を指定できます。
ワークロードの停止に加えて、スケールモードでは停止する代わりにCPU、メモリ、ブロックI/Oを制限できます。また、アンチアフィニティによって、あるグループが別のグループにリソースを譲るように設定できます。さらに、起動・停止イベントのWebhook、Prometheusメトリクス、OpenTelemetryトレースにも対応しています。
主な機能
- 01Docker、Swarm、Podman、Kubernetes、Proxmox LXC、systemdのワークロードを、必要に応じて起動・停止します。
- 02プロキシプラグインを通じてTraefik、Caddy、Nginx、Envoy、Apache APISIX、Istioと連携します。
- 03ワークロードの起動を待つ間、カスタマイズ可能なテーマ付き待機ページを表示します。
- 04スケールモードでは、コンテナを停止する代わりにアイドル時のCPUとメモリを制限します。
- 05インスタンスの起動・停止時にWebhook通知を送信します。
- 06PrometheusメトリクスとOpenTelemetryトレースを公開します。
ユースケース
- Raspberry Piでサービスを運用し、利用頻度の低いアプリはアクセスされるまで停止しておく。
- たまにしか使わないQA環境やステージング環境がリソースを消費し続けるのを防ぐ。
- アイドル状態のKubernetesデプロイメントをゼロにスケールし、クラウドコストを削減する。
- GPUを多用するサービスが、使用中の別のサービスにメモリを譲れるようにする。
クイックスタート
- 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 を通じてデモグループのセッションをリクエストする
curl -v http://localhost:10000/api/strategies/blocking\?group\=demo\&session_duration\=20s
使う前に知っておきたいこと
- ワークロードを管理するには、Docker socket、Kubernetes API、Podman、または Proxmox の環境が必要です。
- 確実にゼロまでスケールダウンするには、コンテナに healthcheck を定義する必要があります。
- ネットワーク利用に関する義務を伴うコピーレフトライセンス、AGPL-3.0 の下でライセンスされています。
収録されている特集
トピック
よくある質問
- sablier とは?
- リクエストに応じてコンテナなどのワークロードを起動し、一定時間アクセスがなければ停止します。リバースプロキシとも連携します。 Sablierはセルフホスト型サーバーです。リクエストが届くと休止中のワークロードを起動し、設定した時間アクセスがなければ停止します。プロバイダーとしてDocker、Docker Swarm、Podman、Kubernetes、Proxmox LXC、systemdに対応しているため、さまざまなコンテナランタイムやホストで同じ方法を利用できます。
- sablier は無料で使えますか?ライセンスは?
- sablier は AGPL-3.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- sablier は今もメンテナンスされていますか?
- 活発にメンテナンス中。sablier の最終コミットは 2026年11月6日 です。
- sablier は何に使えますか?
- Raspberry Piでサービスを運用し、利用頻度の低いアプリはアクセスされるまで停止しておく。 たまにしか使わないQA環境やステージング環境がリソースを消費し続けるのを防ぐ。 アイドル状態のKubernetesデプロイメントをゼロにスケールし、クラウドコストを削減する。 GPUを多用するサービスが、使用中の別のサービスにメモリを譲れるようにする。
- 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 を通じてデモグループのセッションをリクエストする: curl -v http://localhost:10000/api/strategies/blocking\?group\=demo\&session_duration\=20s
- sablier はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/sablierapp/sablier
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
複数ホストのコンテナWeb UIを開き、ログやポート、イメージの更新状況を確認できる、軽量なセルフホスト型Dockerダッシュボード。
YAMLを手編集せずに、Traefikのルート、ミドルウェア、サービス、証明書、ログを管理できるセルフホスト型Web UI。
160以上のセルフホストアプリを事前設定済みで提供し、リバースプロキシや認証機能も備えた、ホームラボ向けDocker・Docker Compose環境の自動構築ツールです。
Traefik経由のサービスを自動検出して表示する、モダンで動的なダッシュボード。
DockerやPodmanのコンテナへ自動でルーティングし、Let's Encrypt証明書、SSO、アイドル時のスリープ機能を備えた軽量リバースプロキシ。