Guide de déploiement

Héberger Gatus sur un VPS : page de statut config-as-code

Déployer sur un VPS Cloud →

Tutoriel

Héberger Gatus sur un VPS : page de statut config-as-code

Self-hosting4 min de lecture6 étapes

Uptime Kuma surveille que votre service « répond ». Gatus surveille qu'il répond correctement : code HTTP exact, temps de réponse sous un seuil, contenu du body, expiration du certificat TLS, résolution DNS vers la bonne IP. Et il publie le tout sur une page de statut prête à partager avec vos clients — le tout piloté par un fichier YAML versionnable, sans interface à configurer.

Sommaire· Pourquoi Gatus plutôt qu'un monitoring de ping classique1/5
  1. 01Pourquoi Gatus plutôt qu'un monitoring de ping classique
  2. 02Ce que Gatus surveille — et Uptime Kuma ne peut pas
  3. 03Architecture : un seul conteneur Go, < 256 Mo RAM
  4. 04Auto-héberger Gatus sur un VPS en 6 étapes
  5. 05Astuce : versionner votre config.yaml dans un dépôt privé

Pourquoi Gatus plutôt qu'un monitoring de ping classique

Un ping HTTP dit que votre serveur répond. Gatus dit qu'il répond *comme il devrait* : vous définissez les conditions exactes — [STATUS] == 200, [RESPONSE_TIME] < 800, [BODY] contains "ok", [CERTIFICATE_EXPIRATION] > 14d — et Gatus lève une alerte dès qu'une condition n'est plus remplie.

La différence concrète : vous découvrez qu'une API retourne 500 en silence, qu'un certificat expire dans 10 jours, ou qu'une résolution DNS pointe vers la mauvaise IP — avant que vos clients ne le découvrent. Le tout piloté par un fichier YAML que vous versionnez comme le reste de votre infrastructure.

Ce que Gatus surveille — et Uptime Kuma ne peut pas

  • Conditions riches sur HTTP : code de statut exact, temps de réponse en ms, contenu du body par regex, valeur d'un champ JSON — en une seule définition d'endpoint.
  • Expiration des certificats TLS : [CERTIFICATE_EXPIRATION] > 14d déclenche une alerte quand il reste moins de 14 jours avant l'échéance.
  • TCP, ICMP, DNS, WebSocket : surveillez une base de données (tcp://db:5432), un ping réseau (icmp://gateway), une résolution DNS (dns://ns1.example.com) ou un écho WebSocket depuis la même config.
  • Page de statut publique : une URL à donner à vos clients pour qu'ils vérifient l'état de vos services sans vous écrire.
  • 40+ canaux d'alerte : Slack, PagerDuty, OpsGenie, Discord, Teams, ntfy, Pushover, Telegram, e-mail, webhook — avec des seuils de déclenchement configurables pour éviter le bruit des clignotements.

Architecture : un seul conteneur Go, < 256 Mo RAM

Gatus est un binaire Go distribué dans une image distroless (< 20 Mo). Un conteneur unique, aucune dépendance extérieure au runtime : l'historique des checks est stocké dans une base SQLite dans un volume Docker. Sur ServOrbit, un init container alpine:3.20 génère un fichier config.yaml de démarrage au premier lancement — vous l'éditez ensuite en SSH pour ajouter vos propres endpoints.

L'empreinte mémoire à l'idle est inférieure à 80 Mo. Un VPS 512 Mo est largement suffisant, y compris si vous co-localisez Gatus avec l'application surveillée.

Auto-héberger Gatus sur un VPS en 6 étapes

  1. Commandez un VPS ServOrbit

    N'importe quelle offre à partir de 512 Mo de RAM convient — Gatus tourne en dessous de 80 Mo à l'idle. Pour un monitoring fiable, placez Gatus sur un VPS séparé de l'application surveillée : si le VPS applicatif tombe, le VPS de monitoring continue d'émettre des alertes.

  2. Déployez depuis le Marketplace en un clic

    Tableau de bord ServOrbit → Marketplace → Monitoring → Gatus → Déployer. Un init container écrit un fichier config.yaml d'exemple, puis Gatus démarre. La page de statut est accessible à http://ip-vps:8080 en quelques secondes.

  3. Éditez le fichier de configuration

    Connectez-vous en SSH et éditez /opt/stacks/gatus/config/config.yaml. Remplacez l'endpoint d'exemple par vos services réels. Un endpoint HTTP minimal ressemble à :

    endpoints:
      - name: "Mon API"
        url: "https://api.votre-domaine.com/health"
        interval: 1m
        conditions:
          - "[STATUS] == 200"
          - "[RESPONSE_TIME] < 1000"

    Relancez avec cd /opt/stacks/gatus && docker compose restart gatus — les nouveaux endpoints apparaissent sur la page de statut en quelques secondes.

  4. Configurez les alertes

    Ajoutez un bloc alerting: dans votre config. Exemple avec ntfy (autre app du Marketplace) :

    alerting:
      ntfy:
        url: "http://votre-vps-ntfy:8080"
        topic: "gatus-alertes"
        priority: 3
        failure-threshold: 2
        success-threshold: 3
    
    endpoints:
      - name: "Mon API"
        url: "https://api.example.com/health"
        interval: 1m
        alerts:
          - type: ntfy
        conditions:
          - "[STATUS] == 200"

    Gatus n'alerte qu'après 2 échecs consécutifs (évite les faux positifs) et envoie une alerte de rétablissement après 3 succès consécutifs.

  5. Partagez la page de statut

    La page de statut sur le port 8080 est prête à partager immédiatement. Pointez un sous-domaine (status.votre-domaine.com) vers l'IP de votre VPS et configurez nginx pour proxifier le port 8080 — ou activez requireDomain: true dans le Marketplace pour obtenir un vhost nginx complet généré par ServOrbit.

  6. Se connecter la première fois

    Gatus n'a pas de compte : l'URL affiche directement la page de statut, publique par défaut. Votre vraie première étape est la configuration — éditez le config.yaml pour remplacer l'endpoint d'exemple par vos propres services, puis relancez avec docker compose restart gatus.

Astuce : versionner votre config.yaml dans un dépôt privé

Le fichier config.yaml de Gatus est votre source de vérité pour la surveillance. Initialisez un dépôt git dans /opt/stacks/gatus/, commitez votre config à chaque modification, et vous avez un historique complet de vos endpoints surveillés, des seuils d'alerte et de leur évolution dans le temps — exactement comme votre code d'infrastructure.

Votre page de statut, votre serveur

Déployez Gatus sur un VPS ServOrbit et obtenez un monitoring de santé config-as-code avec 40+ canaux d'alerte — sans tiers, sans abonnement, sans base de données lourde.

Besoin d'aide ?

Parcourez notre centre d'aide et notre FAQ, ou contactez notre équipe — rappel, WhatsApp ou e-mail. Support en français, anglais et arabe.

Écrire sur WhatsApps'ouvre dans un nouvel onglet