C'EST QUOI ?
Gatus est un dashboard de santé auto-hébergé, écrit en Go et piloté par un fichier YAML. Chaque endpoint surveillé est décrit avec sa cible, son intervalle et une liste de conditions à satisfaire pour être considéré comme sain. Le résultat est une page de statut lisible plus un moteur d'alertes, sans SaaS derrière ni agent à déployer sur les machines surveillées.
POURQUOI C'EST INTÉRESSANT ?
- Des conditions plutôt qu'un simple ping : la validation s'écrit avec des placeholders,
[STATUS] == 200,[RESPONSE_TIME] < 500,[BODY].user.name == johnen JSONPath oulen([BODY].data) < 5. On teste le contenu de la réponse, pas seulement le fait qu'elle arrive. - Beaucoup de protocoles : HTTP, TCP, UDP, SCTP, ICMP, DNS, SSH, WebSocket et gRPC. Des conditions dédiées couvrent aussi l'expiration des certificats avec
[CERTIFICATE_EXPIRATION] > 48het celle des noms de domaine. - Tout en YAML : la config accepte l'interpolation de variables d'environnement et le chargement de plusieurs fichiers fusionnés depuis un dossier. Ça se versionne et se déploie comme du code.
- Alertes partout : une quarantaine de providers intégrés, de Slack et Discord à PagerDuty, Opsgenie, ntfy, Gotify ou Home Assistant, plus les webhooks maison pour le reste.
- Stockage au choix : mémoire par défaut, auquel cas rien ne survit au redémarrage, SQLite avec cache write-through, ou PostgreSQL pour une instance partagée.
CAS D'USAGE
- Exposer une page de statut publique pour ses services
- Vérifier qu'une API renvoie le bon JSON et pas seulement un code 200
- Surveiller l'expiration des certificats TLS et des domaines avant qu'ils lâchent
- Monitorer les services internes d'un cluster Kubernetes depuis l'intérieur
- Router les alertes d'un homelab vers ntfy ou Gotify
