🖥️ Gatus

Status Page On Demand | Gatus
Gatus is an advanced automated status page that lets you monitor your applications and configure alerts to notify you if there’s an issue

Gatus (Code) is an easy to use status page application that you can set up to monitor the uptime of your services or websites.

Gatus homepage (source: gatus.io)

After all, no one can use your websites if they're down.

There are a lot of open source solutions for monitoring uptime (like Uptime Kuma, which we've featured in the past), and Gatus is a great entry in the pool of projects.

Generally what a uptime monitor helps you do is ensure that critical services and webpages (and even sections of webpages) are up and visible to the outside world. Ideally running uptime checks from multiple places is also a good idea (as different parts of internet infrastructure can be down), but at least having one place is a good start.

If you'd like to avoid having to make sure your uptime monitor is up... You can use their paid offering:

Status Page On Demand | Gatus
Gatus is an advanced automated status page that lets you monitor your applications and configure alerts to notify you if there’s an issue

Their cheapest plan is about on par with the cost of a small VPS, which isn't a terrible deal.

🌠 Features

As competition is pretty fierce in the uptime monitoring space (there are lots of projects), Gatus has a lot to offer to try and stand out:

  • Developer focused and API friendly
  • Many monitoring mechanisms (simple HTTP, DNS, TCP, and even GraphQL)
  • Many alerting mechanisms (Email, PagerDuty, Slack, Teams, and much much more)
  • Easy to automate
  • Granular time increments for uptime checks
  • Written in Golang (easy to deploy, easy to read the code)

🤖 As described by AI

Gatus.io is a highly versatile and developer-oriented health monitoring dashboard designed to oversee a wide array of services and infrastructure components. It supports monitoring through various protocols, including HTTP, GraphQL, DNS, ICMP/PING, TCP, and also includes features for certificate expiration checks. Beyond simply verifying response statuses, Gatus allows users to establish conditions based on response times, content, and even specific IP addresses, catering to a broad spectrum of monitoring needs.

At its core, Gatus.io aims to provide a low-maintenance, automated health dashboard that prioritizes reliability and developer-friendliness. Users can configure Gatus to monitor their services using a combination of HTTP, ICMP, TCP, DNS queries, and more, with the ability to assess the outcomes based on a comprehensive set of conditions. This includes evaluating status codes, response times, certificate validity, and response content, among others. Gatus is designed to ensure businesses operate smoothly, alerting developers before issues escalate and affect their customers

📺 Watch this

As service monitoring is quite popular in the HomeLab community, TechnoTim has done a video on Gatus that you might like watching:

👟 Getting started

Thanks in part to being built in Golang and being a modern project, Gatus is really easy to get started with.

🐳 Getting Started with Docker

For the absolute simplest way to start a gatus server:

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

You'll probably want some persistence (and configuration) at some point, so you'd likely start the container with a mount instead:

docker run \
  -p 8080:8080 \
  --mount type=bind,source="$(pwd)"/config.yaml,target=/config/config.yaml \
  --name gatus \
  twinproduction/gatus

🌳 Getting started with Terraform/OpenTofu

gatus also supports being deployed with Terraform (or OpenTofu):

GitHub - TwiN/terraform-kubernetes-gatus: Terraform module for deploying Gatus in Kubernetes
Terraform module for deploying Gatus in Kubernetes - TwiN/terraform-kubernetes-gatus

🧑‍💻 Want to contribute?

Gatus has been around for a while and has over 5,000 ⭐️s on Github. It's Apache 2 licensed and is very open to contributions, check out the Issues:

Issues · TwiN/gatus
⛑ Automated developer-oriented status page. Contribute to TwiN/gatus development by creating an account on GitHub.

Gatus currently has roughly 100 open issues and 200 closed, so it's been worked on quite a bit in the past and there's still work to do.

📬 Want Awesome F/OSS in your inbox?

We'll send you new articles as soon as they go live.