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
/metricsendpoint - 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.