--- title: Gatus created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, monitoring, status-page, devops, go, auto-hebergement, beginner] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/TwiN/gatus] --- # 📊 Gatus > **La status page moderne et orientĂ©e dĂ©veloppeurs** : monitoring + status page + alerting dans un binaire Go unique. Ultra-lĂ©ger, configuration-as-code, parfait pour les devs. ## 📋 Informations GĂ©nĂ©rales | Champ | Valeur | | :--- | :--- | | **Site web** | [gatus.io](https://gatus.io/) | | **GitHub** | [TwiN/gatus](https://github.com/TwiN/gatus) | | **License** | Apache-2.0 | | **Langage** | Go | | **Étoiles GitHub** | 11.2k ⭐ | | **DerniĂšre MAJ** | 2026-06-07 | | **CatĂ©gorie** | [[cat-monitoring|Monitoring]], Status Page, Uptime | ## 📝 Description **Gatus** est un **dashboard de santĂ© de services** moderne, Ă©crit en **Go** (binaire unique de ~15 Mo), qui combine **monitoring**, **status page** et **alerting** dans une seule application. L'idĂ©e : remplacer un [[app-uptime-kuma]] + un [[app-cachet]] par **un seul outil**, plus moderne, plus simple Ă  configurer (YAML, pas d'UI), et plus orientĂ© vers les dĂ©veloppeurs. FonctionnalitĂ©s principales : - ✅ **Monitoring multi-protocoles** : HTTP(s), TCP, ICMP (ping), DNS, WebSocket, gRPC, TLS, SSH, STARTTLS, UDP - ✅ **Conditions par service** : valider le code HTTP, le temps de rĂ©ponse, le contenu du body, le certificat SSL - ✅ **Status page publique** avec thĂšmes (auto, dark, light) - ✅ **Alertes** : Slack, Discord, Telegram, email, PagerDuty, Teams, webhook, et 20+ autres - ✅ **Configuration as Code** : tout en YAML, versionnable dans Git - ✅ **Historique** : graphiques de latence et d'uptime par service - ✅ **Maintenances** : planifier des fenĂȘtres de maintenance - ✅ **Badges SVG** : `?up` / `?down` pour vos READMEs - ✅ **API** pour intĂ©gration externe - ✅ **Auto-discovery** : scanner des sous-rĂ©seaux, exposer des services K8s - ✅ **LĂ©ger** : ~30 Mo de RAM, un seul binaire statique - ✅ **Pas de base de donnĂ©es** : stockage en fichiers JSON **Public cible** : **dĂ©veloppeurs, DevOps, SRE, Ă©quipes qui veulent du monitoring "as code"**. IdĂ©al pour qui aime le **GitOps**. **Comparaison** : Gatus se positionne entre [[app-uptime-kuma]] (qui a une UI pour configurer les services) et [[app-cachet]] (qui est purement status page). Gatus combine les deux avec une approche **YAML-as-config** et un binaire **Go unique** plus lĂ©ger. C'est aussi un concurrent direct de **Healthchecks** (cron monitoring) et **Better Uptime** (commercial). ## 🚀 Installation ### Option 1 : Docker Compose (recommandĂ©) ```yaml # docker-compose.yml version: '3.8' services: gatus: image: twinproduction/gatus:latest container_name: gatus restart: unless-stopped ports: - "8085:8085" # Web UI + API volumes: - ./config:/config - gatus-data:/data environment: TZ: Europe/Paris labels: - "traefik.enable=true" - "traefik.http.routers.gatus.rule=Host(`status.example.com`)" - "traefik.http.routers.gatus.entrypoints=websecure" - "traefik.http.routers.gatus.tls.certresolver=letsencrypt" volumes: gatus-data: ``` **Fichier `config/config.yaml` :** ```yaml # Status page title: Mon Status description: État des services logo: https://example.com/logo.png theme: auto # Services Ă  monitorer services: - name: Site Web url: https://example.com interval: 60s conditions: - "[STATUS] == 200" - "[RESPONSE_TIME] < 500" - name: API Backend url: https://api.example.com/health interval: 30s conditions: - "[STATUS] == 200" - "[BODY] == ok" - name: Base de donnĂ©es url: tcp://db.example.com:5432 interval: 30s conditions: - "[CONNECTED] == true" # Alertes alerting: slack: webhook-url: "https://hooks.slack.com/services/XXX/YYY/ZZZ" default-alert: description: "ProblĂšme dĂ©tectĂ© sur {{ .Service.Name }}" ``` ### Option 2 : Binaire unique (bare-metal) ```bash wget https://github.com/TwiN/gatus/releases/download/v5.16.0/gatus-5.16.0-linux-amd64.tar.gz tar -xzf gatus-5.16.0-linux-amd64.tar.gz ./gatus --config config.yaml ``` ### Option 3 : Homebrew (macOS) ```bash brew install gatus ``` ## ⚙ Configuration Initiale 1. **AccĂ©der Ă  l'UI** : `http://IP:8085` 2. **CrĂ©er le fichier de config** : `config/config.yaml` (volume montĂ©) 3. **DĂ©finir les services** : voir exemple ci-dessus 4. **Configurer les alertes** : section `alerting` du YAML 5. **Activer l'auto-discovery** (optionnel) : scanner un sous-rĂ©seau pour trouver des services 6. **Versionner la config dans Git** : GitOps style, un PR pour ajouter un service ## 🔄 Alternatives ### Open Source - [[app-uptime-kuma]] — Plus complet, UI en JS, monitoring plus large - [[app-cachet]] — Status page pure, sans monitoring - **Healthchecks** — Cron monitoring pur - **Statping-ng** — Plus datĂ©, fork de Statping - **Vigil** — Microservice status page en Rust - **Kener** — Status page moderne en Node.js ### Comparaison Gatus vs alternatives | CritĂšre | Gatus | Uptime Kuma | Cachet | Healthchecks | | :--- | :--- | :--- | :--- | :--- | | Self-hosted | ✅ | ✅ | ✅ | ✅ | | Protocoles | 11+ | 10+ | 0 (externe) | Cron | | Config as code | ✅ YAML | UI | UI | UI | | Status page | ✅ | ✅ | ✅ | Basique | | Badges SVG | ✅ | ❌ | ❌ | ❌ | | Auto-discovery | ✅ | ❌ | ❌ | ❌ | | RAM | ~30 Mo | ~150 Mo | ~200 Mo | ~100 Mo | | Binaire unique | ✅ | ❌ (Node) | ❌ (PHP) | ❌ (Python) | **Verdict** : Gatus est **le choix moderne et lĂ©ger** pour les devs qui aiment le "as code". Uptime Kuma reste plus complet et plus simple d'approche pour les dĂ©butants. ### PropriĂ©taires (ce que Gatus remplace) - **Atlassian Statuspage** (Ă  partir de $29/mois) - **Better Uptime** (Ă  partir de $20/mois) - **Pingdom** (Ă  partir de $10/mois) - **UptimeRobot Pro** (Ă  partir de $7/mois) - **StatusCake** (Ă  partir de $15/mois) - **Hyperping** (Ă  partir de $14/mois) ## 🔐 SĂ©curitĂ© - **Pas d'auth par dĂ©faut** : protĂ©ger via reverse proxy avec BasicAuth ([[app-traefik]]) - **HTTPS** via [[app-traefik]] obligatoire - **OAuth/OIDC** : via middleware Traefik forward-auth (Authelia, Authentik, etc.) - **Secrets dans la config** : ne **jamais** commit les webhooks/tokens dans Git — utiliser un fichier `secrets.yaml` sĂ©parĂ© - **Rate limiting** : protĂ©ger l'API via Traefik si exposĂ©e ## 📚 Ressources - [GitHub TwiN/gatus](https://github.com/TwiN/gatus) - [Documentation officielle](https://github.com/TwiN/gatus/wiki) - [DĂ©mo publique](https://status.twin.sh/) - [Exemples de config](https://github.com/TwiN/gatus/tree/master/.examples) - [Blog du crĂ©ateur](https://twin.sh/) ## Pages LiĂ©es - [[cat-monitoring]] — CatĂ©gorie Monitoring - [[app-uptime-kuma]] — Monitoring d'uptime - [[app-cachet]] — Status page dĂ©diĂ©e - [[app-traefik]] — Reverse proxy HTTPS - [[observabilite]] — Vue d'ensemble observabilitĂ© - [[checklist-monitoring-minimal]] — Checklist