Gatus
Gatus monitors configured endpoints, evaluates response conditions, displays results on a status page, and can send alerts.
Why consider Gatus?
Gatus is a developer-oriented health dashboard that evaluates endpoint status and metrics proactively using flexible conditions.
Learn Gatus by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide4 sections
Proactive Endpoint Monitoring
Most monitoring setups trigger an alert only after an error occurs for a user. Your metrics will not report an increase in errors if no traffic makes it to your applications. Gatus flips this dynamic by polling your application proactively. Instead of waiting for a client to hit a failed route, you define automated health checks that simulate real requests. Gatus evaluates the status code, response time, SSL certificate expiration, and response body payload. When an endpoint stops functioning properly, you receive a notification before your clients are even aware of the degradation.
Conditions and Evaluation
Checking an HTTP status code is a good start, but actual API stability often requires deeper inspection. Gatus lets you build advanced condition rules to establish confidence in your endpoints. You can instruct Gatus to extract specific fields from a JSON response, assert that an array has a minimum length, or confirm that an SSL certificate will not expire within the next 48 hours.
You control the frequency of checks and apply flexible matching logic. For instance, you can verify that an internal property equals a specific string, or that a response is returned within an acceptable timeframe. The project supports HTTP, ICMP, TCP, and DNS queries, which gives you the flexibility to monitor various infrastructure layers.
Alerting Integrations
Visual dashboards help you confirm health at a glance, but continuous observation is impractical. Gatus integrates with your existing workflow by supporting an extensive list of alerting providers. Out of the box, it can deliver notifications to Slack, Discord, PagerDuty, Microsoft Teams, and Twilio. If an endpoint fails a defined condition—like an elevated response time or a malformed JSON body—Gatus dispatches an alert through your configured channels, allowing you to react immediately. You can even configure a custom alerting provider for any specific needs you might have.
Configuration and Deployment
Gatus requires minimal resources and is configured via a YAML file. You can deploy it quickly using Docker, mounting your configuration file into the container.
To get started quickly with the standard image, use the official Docker command:
docker run -p 8080:8080 --name gatus ghcr.io/twin/gatus:stableBy default, Gatus expects a configuration file located at config/config.yaml. Inside this file, you declare the endpoints you want to monitor along with their specific conditions. Here is an example of an endpoint definition:
endpoints: - name: website # Name of your endpoint, can be anything url: "https://twin.sh/health" interval: 5m # Duration to wait between every status check (default: 60s) conditions: - "[STATUS] == 200" # Status must be 200 - "[BODY].status == UP" # The json path "$.status" must be equal to UP - "[RESPONSE_TIME] < 300" # Response time must be under 300ms - name: make-sure-header-is-rendered url: "https://example.org/" interval: 60s conditions: - "[STATUS] == 200" # Status must be 200 - "[BODY] == pat(*<h1>Example Domain</h1>*)" # Body must contain the specified headerWith these definitions in place, Gatus continuously polls the target, evaluates the defined conditions, and keeps you informed of the true operational status of your services.
Related tools
More options with a similar category or technology profile.
dash.
Simple, modern server dashboard and hardware monitor for homelabs.
Xen Orchestra
Complete web-based management and backup solution for XCP-ng and XenServer.
Cockpit Project
Web-based graphical interface for Linux servers with zero overhead.
Kresus
Self-hosted personal finance manager with automatic bank synchronization.