6.6 KiB
title: Healthchecks created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, monitoring, cron, jobs, python, alerting] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/healthchecks/healthchecks]
📊 Healthchecks
Le chien de garde de vos cron jobs : chaque script planifié doit envoyer un « ping » à intervalle régulier. S'il ne le fait pas, Healthchecks vous alerte. Indispensable pour les sauvegardes, ETL, jobs batch.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | healthchecks.io |
| GitHub | healthchecks/healthchecks |
| License | BSD-3-Clause |
| Langage | Python (Django) |
| Étoiles GitHub | 10 080 ⭐ |
| Dernière MAJ | 2026-06-05 |
| Catégorie | [[cat-monitoring |
📝 Description
Healthchecks est un service de monitoring de tâches planifiées (cron jobs, batchs, sauvegardes). Le principe est radicalement différent d'app-uptime-kuma : ici, ce n'est pas le serveur qui interroge le job, c'est le job lui-même qui prévient le serveur qu'il s'est bien exécuté.
Concrètement, chaque job reçoit une URL unique (avec un UUID). Il doit faire un curl https://hc.example.com/ping/UUID à la fin de son exécution. Si le job ne « ping » pas dans l'intervalle attendu (ex : toutes les 24 h), Healthchecks déclenche une alerte : « votre sauvegarde nocturne n'a pas tourné cette nuit ».
C'est l'outil parfait pour détecter les échecs silencieux : un backup qui ne finit jamais, un cron qui crash sans écrire de log, une migration qui tourne en rond.
- ✅ Check URLs uniques avec UUID/token
- ✅ Périodicité configurable par check (toutes les 1h, 24h, 7j…)
- ✅ Grâce period : tolérance avant alerte (ex : 1h après le créneau attendu)
- ✅ Alertes multi-niveaux : « n'a pas tourné à temps » + « a planté »
- ✅ Notifications : Email, Slack, Discord, Telegram, SMS, PagerDuty, OpsGenie, Webhook
- ✅ API REST pour intégrer dans vos outils
- ✅ Status page publique (badge)
- ✅ Multi-équipes : projets isolés par équipe
- ✅ Base de données : PostgreSQL (production) ou SQLite (test)
- ✅ Docker et bare-metal (systemd unit fourni)
Public cible : devs et sysadmins qui gèrent des tâches planifiées critiques (backups, ETL, webhooks, exports). Complémentaire (et non concurrent) d'app-uptime-kuma qui surveille des services HTTP.
🚀 Installation
Option 1 : Docker Compose
# docker-compose.yml
version: '3.8'
services:
healthchecks:
image: healthchecks/healthchecks:latest
container_name: healthchecks
restart: unless-stopped
ports:
- "8000:8000"
environment:
- SITE_ROOT=https://hc.example.com
- SECRET_KEY=changez-moi-en-secret-tres-long
- ALLOWED_HOSTS=hc.example.com
- DB=postgres
- DB_HOST=db
- DB_PORT=5432
- DB_NAME=healthchecks
- DB_USER=hc
- DB_PASSWORD=hcpass
depends_on:
- db
volumes:
- hc-data:/data
labels:
- "traefik.enable=true"
- "traefik.http.routers.hc.rule=Host(`hc.example.com`)"
- "traefik.http.routers.hc.entrypoints=websecure"
- "traefik.http.routers.hc.tls.certresolver=letsencrypt"
- "traefik.http.services.hc.loadbalancer.server.port=8000"
db:
image: postgres:16-alpine
container_name: healthchecks-db
restart: unless-stopped
environment:
- POSTGRES_DB=healthchecks
- POSTGRES_USER=hc
- POSTGRES_PASSWORD=hcpass
volumes:
- hc-db:/var/lib/postgresql/data
volumes:
hc-data:
hc-db:
Option 2 : Binaire / PyPI (déconseillé en prod, mais pour tester)
pip install healthchecks
hc migrate
hc runserver
⚙️ Configuration Initiale
- Accéder à l'UI :
https://hc.example.com(via app-traefik) - Créer le compte superuser :
docker compose exec healthchecks python manage.py createsuperuser - Créer un Check : Add Check > nom > période (ex : 1 day) > grâce (ex : 1 hour)
- Copier l'URL de ping :
https://hc.example.com/ping/UUID-VOSTRE-CHECK - Ajouter le ping à la fin de votre cron job :
# /etc/cron.d/backup 0 3 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 5 https://hc.example.com/ping/UUID >/dev/null - Configurer les canaux de notification : Integrations > Email/Slack/Discord
🔄 Alternatives
Open Source
- app-uptime-kuma — Approche inverse (le serveur interroge le service), pour HTTP
- Cronitor (open core) — Similaire mais plus orienté SaaS
- Dead Man's Snitch (fork libre) — Historique de Healthchecks
- Kuvasz — Uptime monitoring + alerting
Comparaison Healthchecks vs autres
| Critère | Healthchecks | Uptime Kuma | Cronitor | Dead Man's Snitch |
|---|---|---|---|---|
| Self-hosted | ✅ | ✅ | ⚠️ open core | ❌ |
| Focus | Cron jobs | Services HTTP | Cron jobs | Cron jobs |
| Push (job → server) | ✅ | ✅ (push monitors) | ✅ | ✅ |
| Pull (server → service) | ❌ | ✅ | ✅ | ❌ |
| Notifications | 20+ | 90+ | 15+ | Basique |
| Pricing | Gratuit | Gratuit | Freemium | Payant |
| API | ✅ REST | ✅ | ✅ | ❌ |
Verdict : pour les cron jobs critiques, Healthchecks est la référence. Pour la surveillance de services HTTP, restez sur app-uptime-kuma. Les deux sont complémentaires, pas concurrents.
Propriétaires (ce que Healthchecks remplace)
- Cronitor (gratuit limité, $24/mois pour pro)
- Healthchecks.io (le SaaS officiel, 20 checks gratuits)
- Pingdom Transactions (focus Web cron)
- Datadog Synthetics (intégré à la stack Datadog)
🔐 Sécurité
- Auth utilisateur avec gestion des rôles (read-only, membre, admin)
- HTTPS obligatoire via app-traefik (les URL de ping contiennent des UUID/token)
- API tokens distincts des mots de passe utilisateur
- Rotation des UUID de check possible depuis l'UI
📚 Ressources
- GitHub healthchecks/healthchecks
- Documentation officielle
- Self-hosting guide
- SaaS officiel (version cloud)
Pages Liées
- cat-monitoring — Catégorie Monitoring
- app-uptime-kuma — Monitoring de services HTTP
- app-traefik — Reverse proxy HTTPS
- observabilite — Concept d'observabilité
- checklist-monitoring-minimal — Checklist de démarrage