Cachet

Cachet

Laravel status page fed by its API or dashboard

Cachet is a self-hosted status page written in PHP on Laravel: the public page where a team says which parts of a service are down and how the fix is going. The released version shows status without measuring it. Component statuses and incidents come in through the dashboard, the JSON API, or a monitoring tool wired to that API. Uptime Kuma, CheckCle and OneUptime work the other way round: they probe services themselves and build their status pages from those checks.

The comparison of self-hosted uptime monitors and status pages sets Cachet apart: its published version displays statuses without checking services itself.

Scheduled incidents that notify subscribers on publish

The features below are those of the 3.x branch, as its documentation describes them.

  • Fine-grained component status: six states, including performance issues, partial outage and under maintenance. A component group can stay collapsed while everything is fine and expand on its own once one of its components stops being operational.
  • Incidents and maintenance prepared ahead: incidents move through five stages, from reported to fixed. An incident or a maintenance window can carry a future publish date; it stays hidden until then, and subscribers only hear about it at that point.
  • API and MCP server: JSON API tokens are scoped by ability (incidents.manage, schedules.manage and so on), and a built-in MCP server, off by default, lets an AI agent manage components, incidents and maintenance.
  • Subscribers and webhooks: email subscriptions with address verification, a /slack.rss feed a Slack channel can follow, and webhooks signed with a secret across fifteen event types.
  • Your own metrics: push data points from your side and Cachet charts them on the public page.

Unreleased 3.x under a custom proprietary license

No probes in the released version. Cachet 2.4.1 never polls the services it displays. The v2 docs send URL monitoring to third-party scripts the Cachet team does not maintain (cachet-monitor, Zabbix-Cachet, a Nagios event handler), and 3.x can import sites and recent incidents from Oh Dear. Since June 2026 the 3.x branch also has a cachet:check command that sends a GET request to the link of each component with checks enabled and sets its status from the response. Nothing schedules it by default, and the docs mention it only in the changelog.

Host it away from what it reports on. The 3.x docs ask for a server, provider or region separate from the application Cachet covers, with its own database, so the outage that takes the product down does not take the status page with it.

Version 3 is still unreleased. The latest release is 2.4.1, from 7 November 2023, and its composer.json requires PHP 7 and Laravel 5.7. The 3.x branch, announced in August 2023 and now the default, is a rewrite on Laravel 12 or 13 and Filament 5. Its installation guide covers development use only, and the upgrade path from 2.4 is not finished. The last commit to the cachethq/core package landed on 5 October 2026.

3.x requirements. PHP 8.3, 8.4 or 8.5, Composer, one of SQLite, MySQL, MariaDB 10.7+, PostgreSQL or SQL Server, a cron entry every minute for the scheduler and, in production, a queue worker for email. The only documented install is manual: git clone, then Composer.

A custom license on 3.x. The website calls Cachet "100% open source", yet the 3.x branch ships under the "Cachet license" from Alt Three Services, and its composer.json declares proprietary. That license allows commercial use, modification and bundling into your own projects, but forbids distributing Cachet as a standalone product, modified or not. Release 2.4.1 is under BSD-3-Clause. On the 2.4 branch, the LICENSE file switched to MIT text in March 2024, after that release, while composer.json still says BSD-3-Clause.