Loading...
Discovering amazing open source projects
Discovering amazing open source projects
Loading post content...
Gatus lets you monitor HTTP, ICMP, TCP, and DNS endpoints with custom health‑check conditions and instant alerts to Slack, Teams, PagerDuty, and more—offering a self‑hosted, privacy‑first alternative to pricey SaaS monitors.
Every modern application depends on dozens of upstream services: APIs, databases, third‑party webhooks, and even DNS records. When any of those endpoints fail, users notice instantly, support tickets pile up, and revenue drops. Yet the tools most teams reach for—Pingdom, Datadog, New Relic—are proprietary, lock you into recurring fees, and often expose sensitive health data to third parties.
Enter Gatus, an open‑source health dashboard that puts you back in control. By running Gatus in your own environment (Docker, Kubernetes, or even a simple VM), you can monitor any service via HTTP, ICMP, TCP, or DNS, define granular conditions (status code, response time, certificate expiry, response body, etc.), and fire alerts to the collaboration tools you already use. No vendor lock‑in, no per‑endpoint charge, and full data privacy.
Feature | What Gatus Offers |
---|---|
Multi‑protocol checks | HTTP(s) with custom headers, ICMP ping, TCP port probing, DNS A/AAAA/CNAME lookups. |
Condition language | Combine multiple predicates (status == 200 && responseTime < 500ms && body contains "OK" ). |
Alert routing | Over 30 built‑in integrations: Slack, Teams, PagerDuty, Discord, Twilio SMS/Voice, Email (SMTP, AWS SES), Gotify, Home Assistant, and more. |
Dashboard UI | Real‑time status tiles, historical charts, and per‑endpoint details accessible via a clean web UI. |
Kubernetes & Helm support | Deploy with the official Helm chart, auto‑discover services via annotations, and expose metrics to Prometheus. |
Persistent storage | SQLite (default), MySQL, PostgreSQL, or in‑memory for stateless deployments. |
Extensible configuration | YAML‑based config file supports templating, environment variables, and includes for large fleets. |
Docker & OCI images | Official images on Docker Hub (twinproduction/gatus:stable ) and GitHub Container Registry (ghcr.io/twin/gatus:stable ). |
Open‑source transparency | Fully audited codebase, issue tracker, and community‑driven roadmap on GitHub. |
docker run -p 8080:8080 --name gatus \
twinproduction/gatus:stable
Or pull the OCI image from GitHub Container Registry:
docker run -p 8080:8080 --name gatus \
ghcr.io/twin/gatus:stable
The container will start a web UI on http://localhost:8080
. By default it looks for a config.yaml
in the working directory; you can mount your own configuration file:
docker run -p 8080:8080 \
-v $(pwd)/gatus-config.yaml:/config/config.yaml \
--name gatus twinproduction/gatus:stable
Create gatus-config.yaml
with a simple HTTP check and Slack alert:
endpoints:
- name: "API Health"
url: "https://api.example.com/health"
interval: 30s
conditions:
- "[STATUS] == 200"
- "[RESPONSE_TIME] < 500"
alerts:
- type: slack
url: "https://hooks.slack.com/services/XXXXX/XXXXX/XXXXX"
Restart the container, and you’ll see the “API Health” tile turn green when the endpoint meets both conditions, or a Slack message if it fails.
Add the Helm repo and install:
helm repo add gatus https://gatus.io/helm-charts
helm repo update
helm install my-gatus gatus/gatus \
--set config.enabled=true \
--set config.file=$(cat gatus-config.yaml | base64)
The Helm chart automatically creates a Deployment, Service, and optionally a HorizontalPodAutoscaler. Enable Prometheus scraping with --set prometheus.enabled=true
.
Visit http://<your‑host>:8080
to:
Capability | Gatus (Open‑Source) | Pingdom | Datadog |
---|---|---|---|
Supported protocols | HTTP(s), ICMP, TCP, DNS | HTTP(s), ICMP | HTTP(s), ICMP, TCP, DNS (via Synthetic Tests) |
Custom condition engine | Full boolean expressions on status, response time, body, cert expiry, etc. | Basic status‑code & uptime checks | Advanced Synthetics with limited response‑body assertions |
Alert destinations | 30+ native integrations (Slack, Teams, PagerDuty, Discord, Twilio, Email, etc.) | Email, SMS, Slack, Webhooks (limited) | Slack, Teams, PagerDuty, Email, Webhooks, many others via integrations |
Self‑hosted | Yes – Docker/K8s/VM | No (SaaS only) | Optional on‑prem agent, but core UI remains SaaS |
Cost | Free (infrastructure only) | $10‑$50 per month per check | $15‑$23 per host per month, plus Synthetic pricing |
Data privacy | All health data stays in your network | Data stored in Pingdom’s cloud | Data stored in Datadog cloud (subject to their policies) |
Scalability | Horizontal scaling via Kubernetes; unlimited checks limited by your resources | Scales automatically, but price scales with number of checks | Scales via agent clusters; cost scales with hosts & checks |
Dashboard UI | Real‑time tiles + history charts, fully customizable via config | Simple status tiles, limited history | Rich dashboards, but requires paid plans for custom widgets |
For weekly news in the tech-world check out The Infinity Dev Newsletter
Ready to reclaim full visibility over your services without paying per‑endpoint fees?
Visit Gatus.io for documentation, live demos, and the managed offering.
Star the GitHub repo and consider sponsoring the project if you find it valuable.
By choosing Gatus, you gain a privacy‑first, cost‑effective, and extensible monitoring stack that scales with your infrastructure—no vendor lock‑in, no surprise bills, just reliable health data you control.
Curating the best open source projects every day. Follow us for daily discoveries of amazing tools and libraries.
Get all the latest posts delivered straight to your inbox.
We respect your privacy. Unsubscribe at any time.