Run This Ai
EN DE

Monitor Everything: How to Set Up Gatus in 5 Minutes

Gatus Logo

Your Services Deserve Better Monitoring

Every self-hosted service will go down eventually. The question is not if it will happen, but how quickly you will find out. Gatus solves this problem elegantly: it is a single Docker container that continuously checks your services and notifies you the instant something breaks. Here is how to set it up in minutes.

Quick Start with Docker

Run Gatus with a single command:

docker run -p 8080:8080 --name gatus twinproduction/gatus:latest

That is it! Gatus starts with a default configuration that monitors its own health. Visit http://localhost:8080 to see your first status page.

Defining Your Endpoints

Create a config.yaml file to monitor your real services:

endpoints:
  - name: "My Web App"
    url: "https://myapp.example.com"
    conditions:
      - "[STATUS] == 200"
      - "[RESPONSE_TIME] < 500"

  - name: "Database"
    url: "tcp://db.example.com:5432"
    conditions:
      - "[CONNECTED] == true"

  - name: "SSL Certificate"
    url: "https://myapp.example.com"
    conditions:
      - "[CERTIFICATE_EXPIRATION] > 7d"
Gatus Conditions Dashboard

Setting Up Alerts

Get notified when services go down. Here is a Slack alert example:

alerting:
  slack:
    webhook-url: "https://hooks.slack.com/services/..."
    default-alert:
      enabled: true
      description: "Health check failed"
      send-on-resolved: true
      failure-threshold: 3
      success-threshold: 2

Gatus supports alerting to Slack, Discord, Telegram, Email, Pushover, PagerDuty, Opsgenie, Gotify, Mattermost, Teams, Google Chat, and custom webhooks.

Uptime Badges

Add beautiful SVG badges to your README or website showing real-time uptime and response times.

Gatus Endpoint Groups with Badges

Docker Compose (Production Setup)

For a persistent setup with auto-restart:

services:
  gatus:
    image: twinproduction/gatus:latest
    restart: unless-stopped
    ports:
      - 8080:8080
    volumes:
      - ./data/gatus:/data
      - ./config.yaml:/config/config.yaml

Why Choose Gatus?

  • vs. Uptime Kuma: Gatus is configuration-as-code (YAML) instead of UI-driven — better for GitOps workflows
  • vs. Statuspage.io: Gatus is free, self-hosted, and has no endpoint limits
  • vs. Pingdom: Gatus lives on your infrastructure, checking from inside your network

Conclusion

Gatus is the perfect monitoring companion for any self-hosted stack. It is lightweight, developer-friendly, and incredibly capable. Deploy it today and never discover an outage from your users again.

#monitoring #tutorial #docker #self-hosted