Laisser chaque conteneur du laboratoire domestique tourner 24/7 est une taxe silencieuse sur les factures d’électricité, le bruit des ventilateurs et l’espace où réside le mini-PC. Docker standard n’a pas de planificateur, donc quand nous voulons qu’un conteneur fonctionne uniquement de 19h à minuit, ou qu’une tâche rclone s’exécute à 3h du matin, nous recherchons un outil d’assistance. Cette liste couvre les meilleures applications pour planifier les conteneurs Docker sur les ordinateurs de bureau et les petits serveurs en 2026, en se concentrant spécifiquement sur les tâches de démarrage, d’arrêt et d’exécution cron sur Windows, macOS et Linux. Nous avons choisi des outils activement maintenus, qui fonctionnent avec docker-compose simple et (avec une exception) qui ne coûtent rien à exécuter à la maison.
Ce qu’il faut rechercher dans un planificateur Docker
Un bon planificateur fait bien une seule chose. Avant de choisir, vérifiez ces cinq points.
- Syntaxe cron que vous connaissez déjà. Le cron standard à cinq champs plus les secondes de style Quartz et les raccourcis
@every 10mcouvrent presque tous les horaires réels. - Convivial avec Compose et les labels. L’outil devrait lire les labels Docker ou un fichier de configuration à côté de
docker-compose.yaml, pour que les horaires vivent dans le contrôle de version avec les stacks auxquels ils appartiennent. - Respect des politiques de redémarrage. L’arrêt automatique d’un conteneur n’est utile que si
restart: unless-stoppedne vous pose pas de problème au démarrage. Cherchez des outils qui changent l’état proprement. - Visibilité des journaux. Une tâche planifiée qui échoue silencieusement à 3h du matin est pire que pas de tâche du tout. Les journaux d’interface web, les hooks Discord ou Gotify, ou stdout simple vers
docker logscomptent tous. - Petite empreinte. Le planificateur est la pièce qui doit être active quand tout le reste est désactivé. Moins de 50 Mo de RAM et un seul binaire statique est l’objectif.
Comparaison rapide
| Application | Meilleur pour | S’exécute comme | Licence | Coût |
|---|---|---|---|---|
| Ofelia | Cron Docker-native par labels | Conteneur | MIT | Gratuit |
| Chadburn | Fork d’Ofelia avec rechargement de label en direct | Conteneur | MIT | Gratuit |
| systemd + Compose | Zéro dépendances supplémentaires sur Linux | Service d’hôte | LGPL | Gratuit |
| Cronicle | Interface web pour les tâches shell et Docker planifiées | Conteneur | MIT | Gratuit |
| Portainer + SleeperStack | Interface complète du conteneur plus démarrage/arrêt planifiés | Conteneur | Zlib / MIT | Gratuit (CE) |
| Kestra | Flux de travail multi-étapes qui déclenchent les conteneurs | Conteneur | Apache 2.0 | Gratuit (OSS) |
Les applications
1. Ofelia, le meilleur planificateur docker-native global
Ofelia est l’outil sur lequel la plupart des auto-hébergeurs se retrouvent une fois qu’ils ont dépassé le cron de l’hôte. Il s’exécute comme un seul conteneur, lit les horaires à partir de labels sur les conteneurs sur lesquels il doit agir, et supporte quatre types de travaux : job-exec (exécuter une commande dans un conteneur en cours d’exécution), job-run (créer un conteneur temporaire, exécuter, quitter), job-local (exécuter sur l’hôte Ofelia), et job-service-run (Swarm). Combinez job-run avec l’image Docker CLI et Ofelia devient un planificateur de démarrage/arrêt, déclenchant docker start mycontainer à 19h et docker stop mycontainer à minuit. Les horaires utilisent le cron standard plus les secondes Quartz et les raccourcis @every, et chaque exécution est transmise à docker logs.
Où ça pèche : Le développement du dépôt en amont mcuadros/ofelia a ralenti depuis 2024, ce qui a déclenché le fork Chadburn. Les changements de label nécessitent toujours un redémarrage du conteneur Ofelia pour intégrer les nouvelles tâches, et il n’y a pas d’interface web tierce.
Tarification :
- Gratuit, licence MIT, source sur GitHub.
Plates-formes : Linux, macOS, Windows (via Docker Desktop). Le conteneur lui-même est linux/amd64 et linux/arm64.
Télécharger : Site du projet · GitHub
En résumé : Choisissez Ofelia si les stacks qu’il planifie changent rarement et que vous voulez la plus petite surface possible.
2. Chadburn, la meilleure option gratuite activement maintenue
Chadburn est un fork communautaire d’Ofelia (via rdelcorro/ofelia) qui corrige les deux frictions que la plupart des gens rencontrent sur l’original. Il surveille les événements Docker, donc démarrer, arrêter ou réétiqueter un conteneur met à jour son horaire sans redémarrer Chadburn. Il élimine également l’exigence que Chadburn lui-même ait une tâche fictive juste pour rester opérationnel. Les sources de configuration sont additives : un fichier INI et les labels du conteneur fusionnent, ce qui convient aux équipes qui gardent les tâches globales dans un dépôt et les tâches par stack dans chaque fichier compose.
Où ça pèche : Une communauté plus petite qu’Ofelia, donc moins de billets de blog et d’exemples de configuration. L’interface web est minimaliste (une page d’état) plutôt qu’un tableau de bord complet.
Tarification :
- Gratuit, licence MIT, source sur GitHub.
Plates-formes : Linux, macOS, Windows (via Docker Desktop). Les mêmes images multi-architectures qu’Ofelia.
Télécharger : Site du projet · GitHub
En résumé : Le choix par défaut pour quiconque commence de zéro en 2026, car il hérite de la conception d’Ofelia sans le suivi obsolète des problèmes.
3. Minuteurs systemd avec Docker Compose, la meilleure approche sans conteneurs supplémentaires
Sur n’importe quel hôte Linux, systemd est déjà livré avec le planificateur dont la plupart des homelabbers ont besoin. Une paire de fichiers, stack.service (avec ExecStart=docker compose up -d et ExecStop=docker compose down) plus stack.timer (avec OnCalendar=Mon..Fri 19:00), transforme une pile compose entière en quelque chose que le système d’exploitation démarre et arrête selon un horaire. Parce que systemd fonctionne déjà, il n’y a rien à installer, surveiller ou mettre à jour. Les journaux s’écoulent dans journalctl -u stack.service, que la plupart des administrateurs lisent déjà pour d’autres raisons.
Où ça pèche : Linux uniquement. Il n’y a pas d’équivalent sur Windows ou macOS au-delà des tâches planifiées ou launchd, tous deux plus maladroits pour les conteneurs. Gérer plus d’une douzaine de minuteurs à la main devient fastidieux ; un planificateur basé sur un fichier de configuration est meilleur à plus grande échelle.
Tarification :
- Gratuit, livré avec toutes les principales distributions Linux.
Plates-formes : Linux uniquement.
Télécharger : Site du projet · Documentation Docker Compose
En résumé : La bonne réponse quand l’hôte est Linux, l’horaire est simple et ajouter un autre conteneur ressemble à une cérémonie.
4. Cronicle, la meilleure interface web pour les tâches planifiées
Cronicle est un planificateur de tâches multi-serveurs avec une interface de navigateur, des politiques de nouvelle tentative et un suivi des journaux en temps réel. Ce n’est pas spécifique à Docker, ce qui est exactement le point : les tâches sont des commandes shell, donc docker start, docker stop, docker compose restart, ou docker run --rm alpine sh -c '...' fonctionnent tous comme des actions planifiées de première classe. Le tableau de bord affiche les prochains temps d’exécution, la sortie en direct et un historique d’exécution qui persiste après les redémarrages, ce qui facilite la reconstruction des défaillances à 3h du matin le lendemain matin.
Où ça pèche : Pas de configuration basée sur les labels. Chaque horaire se trouve dans l’interface utilisateur ou le fichier de configuration de Cronicle, donc éviter les écarts entre le planificateur et le dépôt compose dépend de vous. La configuration par défaut du serveur unique utilise le stockage du système de fichiers local, ce qui convient bien à homelab et est maladroit pour un cluster.
Tarification :
- Gratuit, licence MIT, source sur GitHub.
Plates-formes : Linux, macOS, Windows (via Docker Desktop ou Node.js).
Télécharger : Site du projet · GitHub
En résumé : Le meilleur choix quand quelqu’un d’autre que l’administrateur système a besoin de vérifier si la tâche d’hier soir s’est exécutée.
5. Portainer avec SleeperStack, le meilleur si l’interface existe déjà
Portainer Community Edition est le tableau de bord web que la plupart des auto-hébergeurs ont déjà installé pour démarrer, arrêter, redémarrer, consulter les journaux et éditer des stacks sur Docker, Swarm et Kubernetes. Il ne planifie pas les événements du cycle de vie des conteneurs par lui-même. L’associer à SleeperStack, un petit conteneur complémentaire qui lit les labels Portainer et émet des appels de démarrage ou d’arrêt selon un horaire, comble le seul écart et préserve le flux de travail pointer-cliquer. Portainer Business ajoute Edge Compute pour les sites hors ligne (premiers cinq nœuds gratuits), mais cela n’est pas lié au travail de planification local.
Où ça pèche : Deux pièces mobiles au lieu d’une. Si Portainer ou la socket Docker redémarre, SleeperStack doit se reconnecter proprement ; testez cela une fois avant de lui confier une fenêtre toute la nuit.
Tarification :
- Portainer CE : gratuit, code source disponible (licence Zlib).
- Portainer Business : gratuit pour les 5 premiers nœuds, payant après.
- SleeperStack : gratuit, licence MIT.
Plates-formes : Linux, macOS, Windows (Docker Desktop). Portainer supporte arm64 pour les hôtes Raspberry Pi.
Télécharger : Site du projet · GitHub
En résumé : Le choix pragmatique pour les ménages où plus d’une personne doit voir et contrôler les conteneurs.
6. Kestra, le meilleur orchestrateur de flux de travail pour utilisateurs avancés
Kestra est un moteur de flux de travail complet qui parle YAML, et l’un de ses types de tâches de première classe est io.kestra.plugin.docker.Run. Cela signifie qu’un flux de travail Kestra planifié peut démarrer un conteneur, attendre sa sortie, capturer les journaux, bifurquer sur le résultat, puis démarrer autre chose. Pour un ménage avec une pile média, une sauvegarde rclone, un instantané Home Assistant et un élagage Restic nocturne, l’orchestration est souvent plus précieuse que le calendrier lui-même. Kestra est gratuit et open-source sous Apache 2.0, avec un niveau Pro payant de 25 $ par mois pour les groupes de workers et RBAC que la plupart des homelabs n’utiliseront pas.
Où ça pèche : Kestra est un moteur de flux de travail d’abord et un planificateur en second. Il attend Postgres (ou H2 intégré pour les tests), et son empreinte mémoire (environ 512 Mo chaud) est un ordre de grandeur au-dessus d’Ofelia. Excessif pour un seul conteneur de style cron.
Tarification :
- Édition open-source : gratuit, Apache 2.0.
- Kestra Cloud Pro : à partir de 25 $ par mois.
- Entreprise : prix personnalisé.
Plates-formes : Linux, macOS, Windows (Docker Desktop). Nécessite Postgres en production.
Télécharger : Site du projet · GitHub
En résumé : Choisissez Kestra quand le problème de planification est vraiment un problème de flux de travail déguisé.
Outils que les gens confondent avec des planificateurs et ce qu’ils font réellement
Quatre noms apparaissent dans chaque fil de discussion homelab sur ce sujet mais ne figurent pas dans la liste ci-dessus.
- Watchtower surveille les registres d’images et met à jour les conteneurs en cours d’exécution quand une nouvelle balise apparaît. Il redémarre, il ne planifie pas. Utilisez-le à côté d’Ofelia, pas à la place.
- Diun est Watchtower sans mise à jour automatique : il avertit quand une nouvelle image est disponible et laisse le conteneur en cours d’exécution seul. Complémentaire, pas un planificateur.
- Dockge (par Louis Lam d’Uptime Kuma) est un éditeur et déploiement de stack Compose avec une interface web propre, des boutons de démarrage/arrêt et un terminal intégré. Excellent pour piloter Compose au quotidien ; pas de cron.
- Yacht est une autre interface web légère pour Docker, orientée modèles. Même histoire : contrôles manuels, pas de planificateur.
- Autoheal surveille les contrôles de santé Docker et redémarre les conteneurs qui rapportent unhealthy. Il réagit à l’état, il n’agit pas dans le temps.
Chacun des cinq fonctionne bien avec Ofelia ou Chadburn : utilisez Dockge pour écrire le stack, ajoutez les labels Ofelia, laissez Watchtower garder les images à jour.
Comment choisir le bon
Si l’hôte est un mini-PC Linux et l’horaire est une ou deux piles qui montent le soir et descendent à l’heure du coucher, utilisez systemd timers. Il n’y a rien à installer, rien à mettre à jour, et un appel systemctl status répond à chaque question de débogage.
Si plus d’un conteneur a besoin d’un horaire, ou si les horaires doivent vivre à côté des fichiers compose dans un dépôt git, exécutez Chadburn. Ofelia convient si vous l’avez déjà en marche ; il n’y a aucune raison de changer juste pour changer, mais les nouveaux déploiements en 2026 doivent commencer par le fork.
Si la personne d’astreinte pour une tâche cassée à 3h du matin n’est pas l’administrateur système, installez Cronicle. L’interface web, l’historique d’exécution et les politiques de nouvelle tentative valent le conteneur supplémentaire.
Si le ménage vit déjà dans Portainer et que personne ne veut une deuxième interface, ajoutez SleeperStack et gardez le flux de travail intact. Si le “calendrier” est vraiment “exécuter trois choses dans un ordre spécifique et m’envoyer un email si l’étape deux échoue,” choisissez Kestra. Et si l’objectif est vraiment juste de garder les images de conteneurs à jour, c’est Watchtower ou Diun, pas n’importe quel outil de la liste ci-dessus.
FAQ
Quel est le meilleur planificateur de conteneur Docker gratuit ?
Pour la plupart des gens, Chadburn est le meilleur choix gratuit en 2026. C’est MIT-licensed, s’exécute comme un seul conteneur, lit les horaires à partir des labels Docker à côté des conteneurs sur lesquels il agit, et détecte les changements de label sans redémarrage. Ofelia est la même conception et tout aussi gratuit ; Chadburn est le fork activement maintenu.
Docker peut-il planifier les conteneurs pour démarrer et s’arrêter automatiquement ?
Pas par lui-même. La politique de restart intégrée de Docker décide seulement ce qu’il faut faire après la sortie d’un conteneur ; elle n’a pas de logique d’heure de la journée. Pour démarrer et arrêter les conteneurs selon un horaire, associez Docker à un planificateur comme Ofelia, Chadburn, Cronicle ou systemd timers.
Portainer a-t-il un planificateur de conteneur intégré ?
Non. Portainer Community Edition et Business Edition offrent tous deux des contrôles manuels de démarrage, d’arrêt et de redémarrage plus l’exécution unique de stack, mais aucun n’a de planificateur de style cron. Pour ajouter la planification, associez Portainer à SleeperStack ou exécutez Ofelia ou Chadburn à côté.
Watchtower est-il un planificateur de conteneur ?
Non. Watchtower surveille les registres Docker pour les nouvelles balises d’images et met à jour les conteneurs en cours d’exécution quand une apparaît. Il n’a pas de syntaxe cron et ne peut pas démarrer ou arrêter un conteneur selon un horaire quotidien. Utilisez-le avec un planificateur comme Ofelia, pas comme remplacement.
Comment économisez-vous l’énergie sur un hôte Docker de laboratoire domestique ?
Les deux plus grands gains sont d’arrêter les conteneurs dont vous avez besoin que quelques heures par jour (stacks média, environnements de dev, cibles de sauvegarde) et de laisser l’hôte lui-même se mettre en veille entre les fenêtres planifiées. Un planificateur comme Chadburn ou une paire de systemd timers gère le premier ; wake-on-LAN plus un minuteur systemctl suspend gère le second.
Ces outils fonctionnent-ils sur Windows et macOS ?
Oui. Ofelia, Chadburn, Cronicle, Portainer, Dockge et Kestra se distribuent tous sous forme de conteneurs Linux qui fonctionnent parfaitement sur Docker Desktop pour Windows et macOS. La seule exception est systemd, qui est Linux uniquement ; sous Windows, Task Scheduler avec les commandes docker compose est l’équivalent le plus proche, et sur macOS, launchd joue le même rôle.