Repolode
sablierapp

sablierapp/sablier

Inicia containers e outras cargas de trabalho sob demanda quando chegam requisições e as interrompe após um período de inatividade, em conjunto com proxies reversos.

Estrelas
3,116
Forks
106
Issues abertas
68
Último commit
ontem

O que é?

Sablier é um servidor self-hosted que inicia cargas de trabalho em espera quando chega uma requisição e as desliga após um período de inatividade configurável. Ele oferece suporte a Docker, Docker Swarm, Podman, Kubernetes, Proxmox LXC e systemd como provedores, permitindo usar a mesma abordagem em diferentes runtimes de containers e hosts.

O Sablier costuma ser usado com um plugin de proxy reverso para Traefik, Caddy, Nginx, Envoy, Apache APISIX ou Istio. O plugin intercepta as requisições recebidas, chama a API do Sablier para ativar o serviço de destino e exibe uma página de espera até que ele esteja pronto. As sessões podem usar uma estratégia bloqueante, que mantém a conexão aberta, ou uma estratégia dinâmica, que exibe uma página de carregamento com tema personalizado.

Além de interromper cargas de trabalho, o Sablier pode limitar CPU, memória e I/O de blocos em vez de interrompê-las no modo de escala, e pode fazer com que um grupo ceda recursos a outro usando anti-affinity. Ele também oferece webhooks para eventos de início e parada, métricas do Prometheus e tracing com OpenTelemetry.

Recursos principais

  • 01Inicia e interrompe cargas de trabalho de Docker, Swarm, Podman, Kubernetes, Proxmox LXC e systemd sob demanda.
  • 02Integra-se ao Traefik, Caddy, Nginx, Envoy, Apache APISIX e Istio por meio de plugins de proxy.
  • 03Exibe uma página de espera personalizável com temas enquanto a carga de trabalho é inicializada.
  • 04O modo de escala limita CPU e memória quando ocioso, em vez de interromper os containers.
  • 05Envia notificações por webhook quando uma instância inicia ou para.
  • 06Disponibiliza métricas do Prometheus e traces do OpenTelemetry.

Casos de uso

  • Executar serviços em um Raspberry Pi e manter aplicativos pouco usados parados até que alguém os acesse.
  • Evitar que ambientes de QA ou staging usados ocasionalmente consumam recursos sem necessidade.
  • Reduzir a zero deployments ociosos do Kubernetes para diminuir os custos de cloud.
  • Permitir que um serviço com alto consumo de GPU ceda memória a outro serviço em uso.

Início rápido

  1. 1

    Execute o servidor Sablier com Docker (copie o compose.yaml do 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

    Inicie um contêiner de demonstração com labels do 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

    Solicite uma sessão para o grupo de demonstração pela API do Sablier.

    curl -v http://localhost:10000/api/strategies/blocking\?group\=demo\&session_duration\=20s

Antes de usar

  • Precisa de um socket do Docker, da API do Kubernetes, de uma instalação do Podman ou do Proxmox para gerenciar cargas de trabalho.
  • Os contêineres precisam definir um healthcheck para escalar até zero de forma confiável.
  • Licenciado sob a AGPL-3.0, uma licença copyleft com obrigações relacionadas ao uso pela rede.

Em coleções

Tópicos

Perguntas frequentes

O que é sablier?
Inicia containers e outras cargas de trabalho sob demanda quando chegam requisições e as interrompe após um período de inatividade, em conjunto com proxies reversos. Sablier é um servidor self-hosted que inicia cargas de trabalho em espera quando chega uma requisição e as desliga após um período de inatividade configurável. Ele oferece suporte a Docker, Docker Swarm, Podman, Kubernetes, Proxmox LXC e systemd como provedores, permitindo usar a mesma abordagem em diferentes runtimes de containers e hosts.
sablier é gratuito? Qual é a licença?
sablier é open source sob a licença AGPL-3.0. Confira os termos da licença antes de usá-lo em produtos comerciais.
sablier ainda é mantido?
Manutenção ativa. O último commit de sablier foi em 6 de nov. de 2026.
Para que posso usar sablier?
Executar serviços em um Raspberry Pi e manter aplicativos pouco usados parados até que alguém os acesse. Evitar que ambientes de QA ou staging usados ocasionalmente consumam recursos sem necessidade. Reduzir a zero deployments ociosos do Kubernetes para diminuir os custos de cloud. Permitir que um serviço com alto consumo de GPU ceda memória a outro serviço em uso.
Como instalar sablier?
Execute o servidor Sablier com Docker (copie o compose.yaml do 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 Inicie um contêiner de demonstração com labels do 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 Solicite uma sessão para o grupo de demonstração pela API do Sablier.: curl -v http://localhost:10000/api/strategies/blocking\?group\=demo\&session_duration\=20s
Onde consigo sablier?
O código-fonte e as instruções de instalação estão no GitHub: https://github.com/sablierapp/sablier

Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.

Projetos relacionados