gitmyhub

gatus

Go ★ 11k updated 2d ago

Automated developer-oriented status page with alerting and incident support

Gatus is a self-hosted uptime monitor that checks your websites, APIs, and services on a schedule and alerts you via Slack, email, PagerDuty, and dozens more integrations when something goes wrong.

GoDockerYAMLHelmTerraformsetup: easycomplexity 3/5

Gatus is a self-hosted tool that keeps watch over your websites, APIs, and other services, then shows you their current status on a simple dashboard. You point it at an address, tell it what a healthy response looks like, and it checks that address on a schedule. If something goes wrong, it sends you an alert.

The checks it can run go beyond just "is the website up." You can verify that a response comes back within a time limit, that a status code matches what you expect, that a specific piece of text appears in the body, or that a TLS certificate is not about to expire. This works over HTTP, TCP, ICMP (ping), and DNS queries, so it covers most of the ways a service might be reachable on a network.

Alerting is handled through integrations with a large number of services: Slack, Microsoft Teams, PagerDuty, Discord, Telegram, email, Twilio, and dozens more. When a health check fails, Gatus fires an alert to whichever destinations you have configured. You can also set up maintenance windows so it does not send alerts during planned downtime.

Configuration is done in a YAML file, making it straightforward to manage in version control or share with a team. The project runs as a Docker container, so deployment is a single command. There is also a Helm chart for Kubernetes environments and a Terraform module if you manage infrastructure that way. A managed hosted version is available at gatus.io for those who do not want to run it themselves.

The dashboard displays response times, uptime percentages, and recent incident history. It can also generate embeddable badge images showing current health or uptime for use in other pages or repositories. An API is available for reading health data programmatically. The full README is longer than what was shown.

Where it fits