Gatus is a free, open source monitoring & observability project written in Go and released under Apache-2.0. It has 12,095 GitHub stars, 828 forks and 382 open issues, and was last pushed 9 days ago. On this registry it ranks #35 of 97 tracked projects in Monitoring & Observability, with 5 head-to-head comparisons available. It gained 37 stars over the last 6 tracked days.

What is Gatus?

What it is

Gatus is an open-source health dashboard and status page for monitoring services in real time. It is written in Go, licensed under Apache-2.0, and appears in the Infrastructure & Operations / Monitoring & Observability category. The project presents a developer-oriented interface for checking whether services are reachable and behaving as expected.

The concrete problem it solves is the need for a self-hosted status page that can run active checks, evaluate those checks against conditions, and notify operators when a service is unhealthy. Instead of only showing whether a process is running, Gatus can query services through HTTP, ICMP, TCP, and DNS, then decide whether the result is healthy based on measurable expectations such as status code, response time, certificate expiration, or response body.

Key capabilities

  • Gatus can monitor services using HTTP, ICMP, TCP, and DNS queries.
  • It evaluates query results against conditions on values such as status code, response time, certificate expiration, and body.
  • It supports alerting through Slack, Teams, PagerDuty, Discord, Twilio, and many other integrations listed in the README.
  • It provides a dashboard and status page interface for viewing endpoint health.
  • It can be deployed as a container with Docker images named ghcr.io/twin/gatus:stable and twinproduction/gatus:stable.
  • It includes configuration areas for endpoints, external endpoints, suites, storage, web UI, announcements, client configuration, tunneling, and alerting.
  • The README indicates that a managed solution is available through Gatus.io.

Who uses it and how

  • Developers and operators can run Gatus as a self-hosted status page for services they need to observe continuously.
  • The README author describes deploying it in a Kubernetes cluster to monitor core applications and reference a status page at status.twin.sh.
  • Teams that use the listed alerting integrations can connect Gatus checks to notification channels such as Slack, Teams, PagerDuty, Discord, Twilio, Email, AWS SES, SendGrid, and others mentioned in the README.
  • Users who prefer containers can start it with a single Docker command and map port 8080 for the web interface.
  • Organizations that do not want to self-host can consider the hosted option referenced by the project homepage.

Getting started

The typical quick start is to run the Docker image ghcr.io/twin/gatus:stable or twinproduction/gatus:stable with port 8080 exposed. The README also describes Kubernetes deployment and points to Gatus.io for a managed option.

When to use it — and when not to

Gatus is a good fit when the user wants a Go-based, Apache-2.0 status page with active checks, condition evaluation, and many alerting integrations. The provided metadata lists a repository age of 0 years, zero contributors, and 382 open issues, so a self-hoster should verify current maintenance before relying on it. Self-hosters must still operate the container, configure storage and alerting channels, and maintain the service for the monitored endpoints.

project readme (upstream, from github) — read inline

Gatus

test Go Report Card Go version Docker pulls Follow TwiN

Gatus is a developer-oriented health dashboard that gives you the ability to monitor your services using HTTP, ICMP, TCP, and even DNS queries as well as evaluate the result of said queries by using a list of conditions on values like the status code, the response time, the certificate expiration, the body and many others. The icing on top is that each of these health checks can be paired with alerting via Slack, Teams, PagerDuty, Discord, Twilio and many more.

I personally deploy it in my Kubernetes cluster and let it monitor the status of my core applications: https://status.twin.sh/

Looking for a managed solution? Check out Gatus.io.

Quick start
docker run -p 8080:8080 --name gatus ghcr.io/twin/gatus:stable

You can also use Docker Hub if you prefer:

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

For more details, see Usage

❤ Like this project? Please consider sponsoring me.

Gatus dashboard

Have any feedback or questions? Create a discussion.

Table of Contents

Why Gatus?

Before getting into the specifics, I want to address the most common question:

Why would I use Gatus when I can just use Prometheus’ Alertmanager, Cloudwatch or even Splunk?

Neither of these can tell you that there’s a problem if there are no clients actively calling the endpoint. In other words, it's because monitoring metrics mostly rely on existing traffic, which effectively means that unless your clients are already experiencing a problem, you won't be notified.

Gatus, on the other hand, allows you to configure health checks for each of your features, which in turn allows it to monitor these features and potentially alert you before any clients are impacted.

A sign you may want to look into Gatus is by simply asking yourself whether you'd receive an alert if your load balancer was to go down right now. Will any of your existing alerts be triggered? Your

readme truncated — read the full docs on github

Frequently asked questions

Is Gatus free to use?

Gatus is open source under the Apache-2.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Gatus do?

Advanced automated status page for real-time monitoring

What is Gatus written in?

Gatus is primarily written in Go. Its source is publicly available at https://github.com/twin/gatus, and it has 12,095 GitHub stars.