Files
2026-06-09 18:40:21 +02:00

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

  1. Accéder à l'UI : https://hc.example.com (via app-traefik)
  2. Créer le compte superuser : docker compose exec healthchecks python manage.py createsuperuser
  3. Créer un Check : Add Check > nom > période (ex : 1 day) > grâce (ex : 1 hour)
  4. Copier l'URL de ping : https://hc.example.com/ping/UUID-VOSTRE-CHECK
  5. 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
    
  6. 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

Pages Liées