~/tools/gatus
Gatus
tool

Gatus

Gatus is an open source health and uptime monitoring tool you can self-host — a UptimeRobot and Pingdom alternative that actively probes your services over HTTP, TCP, DNS, and ICMP, then alerts you and shows a status page when something breaks.

What is Gatus?

Gatus is a developer-oriented health monitoring tool that actively checks whether your services are up and behaving correctly. You define endpoints in a YAML file — a target, the conditions that count as healthy, and where to send alerts — and Gatus probes them on a schedule over HTTP, TCP, ICMP, DNS, and more, then renders the results on a live status page.

What is Gatus best for?

Developers and ops teams who want to monitor uptime and API health on their own infrastructure — including internal services behind a firewall that a cloud SaaS can’t reach — without paying per-monitor fees. It shines when you want to assert not just “is it responding” but “is it responding correctly”: checking status codes, response bodies, latency, and TLS certificate expiry.

What can Gatus do?

  • Monitor services over HTTP/HTTPS, TCP, UDP, ICMP (ping), DNS, WebSocket, gRPC, SSH, and STARTTLS
  • Assert health with conditions on status code, response time, response body (with JSONPath), IP, and certificate expiration
  • Send alerts to 20+ destinations — Slack, Discord, PagerDuty, Opsgenie, Microsoft Teams, Telegram, email, and custom webhooks
  • Publish an automatic status page with uptime history, response-time graphs, and embeddable SVG badges
  • Configure everything in YAML, with environment-variable substitution and config hot reload
  • Store results in SQLite (default) or PostgreSQL, and export Prometheus metrics from a /metrics endpoint
  • Schedule maintenance windows and lock the dashboard down with Basic auth or OIDC

Where does Gatus fall short?

  • It’s configured entirely in YAML — there’s no web UI for adding or editing monitors, so every change is a file edit and reload. Tools like Uptime Kuma offer point-and-click setup instead.
  • It’s a focused active-health-checker, not a full observability platform — there’s no metrics dashboarding, log aggregation, or tracing like Grafana or Datadog provide.
  • It runs as a single instance with a deliberately simple dashboard, so multi-region probing and deep historical analytics aren’t built in.

Is Gatus free?

Yes — Gatus is fully open source under the Apache 2.0 license and free to self-host, so you only pay for the server it runs on. A managed, hosted option exists at gatus.io if you’d rather not run it yourself.

What does Gatus replace?

Gatus is a self-hosted alternative to hosted uptime monitors like UptimeRobot and Pingdom. You get the same up/down checks, alerting, and public status page, but you run it on your own infrastructure, aren’t billed per monitor, and can probe internal services that a cloud SaaS never sees.

FAQ

Is Gatus open source? Yes. Gatus is licensed under Apache 2.0 — free to use, modify, and self-host, with the full source on GitHub.

Can I self-host Gatus for free? Yes. Self-hosting is free; you only pay for the server. Official Docker images, a Helm chart, and a single Go binary keep deployment simple.

Is Gatus a good UptimeRobot alternative? For technical teams, yes — it runs the same uptime checks and adds response-body and certificate assertions, with no per-monitor fees and the ability to watch internal services. UptimeRobot is quicker to start with since there’s nothing to host.

What do I need to run Gatus? A server or container runtime (Docker recommended) and a YAML config file. SQLite works out of the box; switch to PostgreSQL if you want a shared external database.