Repolode
sablierapp

sablierapp/sablier

Запускает контейнеры и другие ресурсы по запросу и останавливает их после периода бездействия, работая с обратными прокси.

Звёзды
3,116
Форки
106
Открытые issues
68
Последний коммит
вчера

Что это?

Sablier — self-hosted сервер, который запускает простаивающие ресурсы при поступлении запроса и останавливает их после заданного периода бездействия. В качестве провайдеров поддерживаются Docker, Docker Swarm, Podman, Kubernetes, Proxmox LXC и systemd, поэтому этот подход работает с разными контейнерными средами и хостами.

Обычно Sablier используют вместе с плагином для обратного прокси: Traefik, Caddy, Nginx, Envoy, Apache APISIX или Istio. Плагин перехватывает входящие запросы, обращается к API Sablier, чтобы запустить целевой сервис, и показывает страницу ожидания, пока тот не будет готов. Для сессий можно выбрать блокирующую стратегию, при которой соединение удерживается, или динамическую — с тематической страницей загрузки.

Вместо остановки ресурсов Sablier также может ограничивать использование CPU, памяти и блочного ввода-вывода в режиме масштабирования. Кроме того, с помощью anti-affinity он позволяет одной группе уступать ресурсы другой. Также доступны вебхуки для событий запуска и остановки, метрики Prometheus и трассировка OpenTelemetry.

Ключевые возможности

  • 01Запускает и останавливает по запросу ресурсы Docker, Swarm, Podman, Kubernetes, Proxmox LXC и systemd.
  • 02Интегрируется с Traefik, Caddy, Nginx, Envoy, Apache APISIX и Istio с помощью плагинов для прокси.
  • 03Показывает настраиваемую страницу ожидания с темами, пока ресурс запускается.
  • 04В режиме масштабирования ограничивает использование CPU и памяти простаивающими контейнерами, вместо того чтобы останавливать их.
  • 05Отправляет уведомления через вебхуки при запуске и остановке экземпляров.
  • 06Предоставляет метрики Prometheus и трассировки OpenTelemetry.

Сценарии использования

  • Запускать сервисы на Raspberry Pi и оставлять редко используемые приложения остановленными, пока кто-нибудь не зайдёт на них.
  • Не тратить ресурсы на QA- и staging-окружения, которые используются лишь время от времени.
  • Сокращать расходы на облако, масштабируя простаивающие Kubernetes-деплойменты до нуля.
  • Позволять сервису с высокой нагрузкой на GPU уступать память другому используемому сервису.

Быстрый старт

  1. 1

    Запустите сервер Sablier с помощью Docker (скопируйте compose.yaml из README).

    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. 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. 3

    Запросите сессию для демонстрационной группы через API Sablier.

    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 — self-hosted сервер, который запускает простаивающие ресурсы при поступлении запроса и останавливает их после заданного периода бездействия. В качестве провайдеров поддерживаются Docker, Docker Swarm, Podman, Kubernetes, Proxmox LXC и systemd, поэтому этот подход работает с разными контейнерными средами и хостами.
sablier можно использовать бесплатно? Какая у него лицензия?
sablier распространяется с открытым исходным кодом под лицензией AGPL-3.0. Перед использованием в коммерческих продуктах проверьте условия лицензии.
sablier всё ещё поддерживается?
Активно поддерживается. Последний коммит в sablier — 6 нояб. 2026 г..
Для чего можно использовать sablier?
Запускать сервисы на Raspberry Pi и оставлять редко используемые приложения остановленными, пока кто-нибудь не зайдёт на них. Не тратить ресурсы на QA- и staging-окружения, которые используются лишь время от времени. Сокращать расходы на облако, масштабируя простаивающие Kubernetes-деплойменты до нуля. Позволять сервису с высокой нагрузкой на GPU уступать память другому используемому сервису.
Как установить sablier?
Запустите сервер Sablier с помощью Docker (скопируйте compose.yaml из README).: 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 Запросите сессию для демонстрационной группы через API Sablier.: curl -v http://localhost:10000/api/strategies/blocking\?group\=demo\&session_duration\=20s
Где скачать sablier?
Исходный код и инструкции по установке — на GitHub: https://github.com/sablierapp/sablier

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Лёгкий reverse proxy с WebUI, который автоматически настраивает маршруты для контейнеров Docker и Podman, управляет сертификатами Let's Encrypt и поддерживает SSO и остановку при простое.

4,2 тыс.+9 за неделю192GoOtherОбновлён позавчера