Initial vault setup

This commit is contained in:
2026-06-09 18:40:21 +02:00
commit bda02d587f
3692 changed files with 402457 additions and 0 deletions
+141
View File
@@ -0,0 +1,141 @@
---
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](https://github.com/sablierapp/sablier) |
| **License** | AGPL-3.0 |
| **Langage** | Go |
| **Étoiles GitHub** | 2751 ⭐ |
| **Dernière MAJ** | 2026-06-04 |
| **Catégorie** | [[cat-docker\|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é)
```yaml
# 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
```bash
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
1. **Monter le socket Docker** : Sablier a besoin de `/var/run/docker.sock` pour piloter les conteneurs
2. **Annoter les conteneurs à piloter** avec les labels `sablier.enable=true`, `sablier.group=…`
3. **Choisir la stratégie d'activation** : `web` (wake on HTTP) ou `schedule` (plages horaires) ou `sleeping` (timer)
4. **Configurer le timeout** : `sablier.timeout=30m` → le conteneur s'endort après 30 min d'inactivité
5. **Accéder au statut** : `http://IP:8080` affiche la page d'attente quand un service démarre
6. **Tester** : déclencher un `curl http://sablier.example.com/start/jellyfin` et vérifier avec `docker 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 stop` aprè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|docker-socket-proxy]] 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 `/start` sensibles si l'API est ouverte
## 📚 Ressources
- [GitHub sablierapp/sablier](https://github.com/sablierapp/sablier)
- [Documentation officielle](https://sablierapp.dev/)
- [Démo live](https://demo.sablierapp.dev/)
## 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é