Introduction
Cachet gives your team a branded status page for communicating uptime, scheduled maintenance, and incidents. It runs on your own infrastructure so you control the data and the design.
What Cachet Does
- Displays real-time component status (operational, degraded, partial outage, major outage)
- Manages incident creation with timeline updates and notifications
- Tracks scheduled maintenance windows with automatic status transitions
- Provides metric graphs for custom uptime or performance indicators
- Sends subscriber notifications via email when incidents are created or updated
Architecture Overview
Cachet is a Laravel PHP application backed by a relational database (MySQL or PostgreSQL). The frontend renders server-side with Blade templates and a Vue.js dashboard. A queue worker handles subscriber email notifications asynchronously via Redis or database-backed queues.
Self-Hosting & Configuration
- Deploy with Docker Compose using the official image
- Configure database credentials and mail settings via environment variables
- Set the APP_URL to match your public status page domain
- Enable subscriber notifications by configuring an SMTP provider
- Customize branding, colors, and layout through the admin dashboard
Key Features
- Subscriber system that emails users about new incidents and updates
- Full REST API for programmatic component status updates and incident creation
- Metric tracking with customizable graphs on the status page
- Multi-language support with community-maintained translations
- Two-factor authentication for admin accounts
Comparison with Similar Tools
- Upptime — GitHub-based, no self-hosted backend; Cachet has a full admin panel and subscriber system
- Gatus — health-check focused with auto-generated page; Cachet allows manual incident management
- Statuspage.io (Atlassian) — managed SaaS with per-subscriber pricing; Cachet is free and self-hosted
- Uptime Kuma — monitoring tool with basic status pages; Cachet specializes in incident communication
- Instatus — hosted service; Cachet keeps all data on your own servers
FAQ
Q: What database backends are supported? A: MySQL, MariaDB, PostgreSQL, and SQLite.
Q: Can I update component status via API? A: Yes, Cachet provides a REST API that accepts status updates, making it easy to integrate with monitoring tools.
Q: Does Cachet monitor services automatically? A: No, Cachet is a communication tool. You update status manually or via API from your monitoring system.
Q: Is Cachet still actively maintained? A: The 3.x branch is under active development with a rewritten codebase on modern Laravel.