Cachet vs Gatus: Status Page Comparison

Quick Verdict

Gatus is the better choice for most self-hosters — it monitors your endpoints AND generates a status page from one tool. Cachet is better if you need a professional incident communication platform where a human writes incident updates and subscribers get email notifications. They solve different problems.

What Each Tool Does

Cachet is a status page system, not a monitoring tool. It doesn’t check whether your services are up — you tell it when something is down, write incident updates, and it displays that information to subscribers on a public page. Think StatusPage.io or Atlassian Statuspage. It’s incident communication.

Gatus is a monitoring tool that happens to include a status page. It actively checks endpoints, evaluates conditions, triggers alerts, and displays results on a dashboard. The status page is a byproduct of monitoring, not the primary feature.

This distinction matters. Cachet requires someone (or something via API) to report incidents. Gatus detects them automatically.

Feature Comparison

FeatureCachetGatus
Primary purposeIncident communicationEndpoint monitoring
Auto-detection of downtimeNo (manual or API)Yes
Component status trackingYes (4 levels)Yes (up/down)
Incident managementFull (investigating → fixed)Basic (auto-created)
Scheduled maintenanceYesNo
Subscriber notificationsYes (email)No
Public status pageYes (professional)Yes (functional)
Monitoring protocolsNoneHTTP, TCP, ICMP, DNS, SSH
Alerting integrationsEmail onlySlack, Discord, PagerDuty, 20+
ConfigurationWeb UIYAML
DependenciesPostgreSQL + Redis + PHPNone (single binary)
Resource usage~150 MB RAM~20 MB RAM
REST APIFull CRUDRead-only status
Docker setup3 containers1 container
Active developmentSlow (v3 in progress)Active

Architecture Differences

Cachet runs a PHP application with PostgreSQL and Redis — three containers minimum. It provides a full admin dashboard for managing components, incidents, and subscribers. The stack is heavier but the feature set is richer for incident communication.

Gatus is a single Go binary in one container. No database required (uses SQLite by default). Configuration is entirely YAML-based — no web admin panel. It’s dramatically simpler to deploy and maintain, but it doesn’t have Cachet’s incident management workflow.

Incident Communication

This is where Cachet excels. When a service goes down, you can:

  1. Create an incident with a status (Investigating, Identified, Watching, Fixed)
  2. Update the incident as the situation evolves
  3. Automatically notify subscribers via email
  4. Show affected components and their degraded status
  5. Schedule planned maintenance windows

Gatus can detect downtime and alert your team, but it doesn’t have a structured incident communication workflow. There’s no way for subscribers to follow status updates, no maintenance windows, and no incident timeline.

If your audience is end users who need professional incident communication (“We’re investigating elevated error rates on the API”), Cachet is built for that. If your audience is your ops team who needs to know what’s down, Gatus handles it.

Monitoring Capabilities

Gatus wins here entirely. It monitors HTTP, TCP, ICMP, DNS, and SSH endpoints with configurable conditions. It checks response times, response bodies, certificate expiry, and custom headers. It alerts through 20+ channels.

Cachet doesn’t monitor anything. You can integrate external monitoring tools with Cachet’s API to automate incident creation, but that requires writing the integration yourself. Pairing Cachet with Gatus or Uptime Kuma for monitoring is a common approach.

Use Cases

Choose Cachet If…

  • You need a professional public status page for customers
  • You want subscriber email notifications for incidents
  • You need scheduled maintenance announcements
  • You have a monitoring tool already and need an incident communication layer
  • Your organization follows formal incident management processes

Choose Gatus If…

  • You want monitoring and a status page in one tool
  • You don’t need subscriber notifications
  • You prefer YAML configuration over web UIs
  • You want minimal resource usage (single container, 20 MB RAM)
  • You need advanced monitoring conditions and alerting
  • You value active development and maintenance

Final Verdict

Gatus is the better starting point for most self-hosters. It does monitoring and status in one lightweight tool. You set it up once, point it at your endpoints, and forget about it until something breaks — then it alerts you automatically.

Cachet makes sense in one specific scenario: you need to communicate incidents to external users professionally. The subscriber notification system, maintenance windows, and structured incident updates are features Gatus doesn’t have. If you serve customers who expect a StatusPage.io-style experience, Cachet delivers that.

The best setup for a serious operation? Run Gatus for monitoring and alerting, then trigger Cachet incidents via API when Gatus detects problems. That gives you both automatic detection and professional communication. For a simpler alternative to Cachet with a nicer UI, see Uptime Kuma.