6.3 KiB
title: Sablier created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, docker, conteneur, auto-hebergement, go, economie-ressources] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Docker, https://github.com/sablierapp/sablier]
🐳 Sablier
L'économie d'énergie Docker, simplement : mettez en veille vos conteneurs quand vous ne les utilisez pas, et réveillez-les à la demande. Idéal pour les services « à la demande » comme les sites de démo, les labs, ou les services de développement.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | (GitHub) |
| GitHub | sablierapp/sablier |
| License | AGPL-3.0 |
| Langage | Go |
| Étoiles GitHub | 2751 ⭐ |
| Dernière MAJ | 2026-06-04 |
| Catégorie | cat-docker |
📝 Description
Sablier est un projet permettant de démarrer, arrêter et mettre en veille (« sleep ») des conteneurs Docker à la demande. Comme un sablier, on peut retourner le conteneur pour le réveiller, et le remettre en sommeil après un délai d'inactivité configurable.
Le cas d'usage principal est l'économie de ressources : sur un homelab ou un petit serveur, beaucoup de conteneurs ne servent que ponctuellement (Jellyfin, Pi-hole de secours, sites de dev, agents de sauvegarde…). Les laisser tourner en permanence consomme du CPU, de la RAM et de l'électricité. Sablier les endort automatiquement et les réveille dès qu'une requête arrive.
- ✅ Stratégies d'activation :
web,Sleeping(timer),Schedule(cron-like),Dynamic(Docker labels) - ✅ Wake-up HTTP : endpoints
GET /start,GET /stop,GET /sablier/{provider}/{name} - ✅ Page de statut personnalisable : affiche un placeholder pendant que le conteneur démarre
- ✅ Providers : Docker, Docker Swarm, Kubernetes (via plugins)
- ✅ Authentification : basic auth, OAuth2
- ✅ API REST : pilotable depuis n8n, Home Assistant, etc.
- ✅ Léger : un seul binaire Go, pas de base de données requise
Sablier vs alternatives : c'est l'un des rares projets à combiner à la fois le « sleep on inactivity » et le « wake on HTTP » dans une seule solution simple. Plus léger qu'un PaaS complet (Coolify, Kamal), plus flexible qu'un simple cron.
🚀 Installation
Docker Compose (recommandé)
# docker-compose.yml
version: '3.8'
services:
sablier:
image: sablierapp/sablier:1
container_name: sablier
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro # ⚠️ équivalent root
environment:
- SABLIER_LISTEN_PORT=8080
- SABLIER_PROVIDER=docker
- SABLIER_DYNAMIC_CONFIG=true
labels:
- "traefik.enable=true"
- "traefik.http.routers.sablier.rule=Host(`sablier.example.com`)"
- "traefik.http.routers.sablier.entrypoints=websecure"
- "traefik.http.routers.sablier.tls.certresolver=letsencrypt"
# Exemple : un conteneur à piloter via Sablier
jellyfin-sleep:
image: lscr.io/linuxserver/jellyfin:latest
container_name: jellyfin
labels:
- "sablier.enable=true"
- "sablier.group=medias"
- "sablier.schedule=0 8 * * *|0 23 * * *" # actif de 8h à 23h
- "sablier.timeout=30m"
- "traefik.enable=false" # Sablier agit comme reverse-proxy
Binaire standalone
wget -O sablier.tar.gz https://github.com/sablierapp/sablier/releases/latest/download/sablier_Linux_x86_64.tar.gz
tar -xzf sablier.tar.gz && sudo mv sablier /usr/local/bin/
sablier serve --provider docker
⚙️ Configuration Initiale
- Monter le socket Docker : Sablier a besoin de
/var/run/docker.sockpour piloter les conteneurs - Annoter les conteneurs à piloter avec les labels
sablier.enable=true,sablier.group=… - Choisir la stratégie d'activation :
web(wake on HTTP) ouschedule(plages horaires) ousleeping(timer) - Configurer le timeout :
sablier.timeout=30m→ le conteneur s'endort après 30 min d'inactivité - Accéder au statut :
http://IP:8080affiche la page d'attente quand un service démarre - Tester : déclencher un
curl http://sablier.example.com/start/jellyfinet vérifier avecdocker ps
🔄 Alternatives
Open Source
- Kiosk / Watchtower — gèrent les updates, pas le sleep
- Docker Swarm / Kubernetes HPA — orchestration à plus grande échelle
- Home Assistant + shell_command — DIY :
docker stopaprès inactivité - Kuma (app-uptime-kuma) — monitoring, pas de mise en veille
Comparaison Sablier vs alternatives
| Critère | Sablier | Cron maison | Home Assistant | K8s + HPA |
|---|---|---|---|---|
| Wake-on-HTTP | ✅ | ❌ | ❌ (DIY) | ✅ |
| Sleep on inactivity | ✅ | ❌ | ✅ (DIY) | ✅ |
| Page de statut | ✅ | ❌ | ❌ | ❌ |
| Setup | 5 min | 10 min | 30 min | 1h+ |
| Complexité | Faible | Faible | Moyenne | Élevée |
Verdict : Sablier est le meilleur compromis simplicité/fonctionnalité pour un homelab. Pour de la production à l'échelle, tournez-vous vers Kubernetes.
Propriétaires (ce que Sablier remplace)
- Heroku Eco dynos (sleep après 30 min d'inactivité — modèle similaire)
- Render free tier (idem)
- Kaffeine (auto-wake Heroku, mais obsolète)
🔐 Sécurité
- ⚠️ Socket Docker monté = accès root sur l'hôte. En cas de compromission Sablier, l'attaquant contrôle tout l'hôte. Alternatives : app-docker-socket-proxy-docker en mode read-only, ou exécuter Sablier en mode rootless.
- Activer l'authentification (
SABLIER_BASIC_AUTH_USER/SABLIER_BASIC_AUTH_PASSWORD) pour l'API d'administration - Page de statut publique : ne pas y exposer de liens
/startsensibles si l'API est ouverte
📚 Ressources
Pages Liées
- cat-docker — Catégorie Docker
- app-portainer / app-dockge / app-yacht — GUI Docker
- app-traefik — Reverse-proxy pour exposer Sablier
- recettes-docker-compose — Compose files prêts à l'emploi
- securisation-home-lab — Bonnes pratiques sécurité