Gatus
ObservabilityCheck your services around the clock and publish a status page.
Gatus checks your websites and APIs on a schedule, so you can find a problem before customers report it. Each check can test more than whether a page loads, such as response time, page content or certificate expiry. Results appear on a status page you can share, and failures send alerts to the tools your team already uses.
- Runs health checks over HTTP, ICMP, TCP, UDP, DNS, SSH, gRPC, WebSocket and TLS.
- Conditions test status code, response time, body, certificate and domain expiry.
- Sends alerts to Slack, Teams, PagerDuty, Discord, Telegram, email and more.
What people use it for
Publish a status page for your services
Write a config.yaml with an endpoints list, giving each endpoint a name, URL, interval and conditions such as [STATUS] == 200. Run the ghcr.io/twin/gatus:stable image with the file mounted at /config/config.yaml. Use the group field to keep related endpoints together and add announcements to tell visitors about outages or planned work.
Get alerted before customers notice an outage
Configure a provider such as Slack or PagerDuty under alerting, then add alerts to each endpoint. Set failure-threshold for how many failed checks in a row trigger an alert, and turn on send-on-resolved to hear when the service recovers. A maintenance window stops alerts during planned work.
Watch certificates and domains before they expire
Add a condition such as [CERTIFICATE_EXPIRATION] > 48h to an HTTPS endpoint, or [DOMAIN_EXPIRATION] > 720h to track domain renewal. The check fails once the limit is reached, which sends the alerts you configured. With metrics enabled, the same values are exposed to Prometheus at /metrics.