Discover Cachet, an open source status page service to better communicate downtime and system outages to customers, teams and shareholders.

Cachet: the open source status page system solution

Every company with a considerable amount of web projects that are meant to work perfectly 24/7, offer their users the possibility to know wheter a page is working or not. This is done through status pages, one of the most known services for this kind of thing, is the Statuspage.io project, offered by Attlasian or other toolss that offer the same service like Status.io, Hund, Checkup, Stashboard and statusfy. Those pages are up, even when the service that you are offering is down, so the user should be able to know if the service is available or not easily.

Fortunately, for those who aren't willing to invest on this kind of service but aren't willing to build it from scratch neither, there's an open source option that you can easily implement in your PHP server. We are talking about the Cachet project.

Technical requirements

The Cachet project has been developed purely on PHP, to run it in your server you will need a LAMP or XAMPP environment with:

  • PHP >= 5.5.9, you'll also need ext-gd, ext-simplexml, mcrypt and ext-xml installed.
  • Composer and ext-mbstring,ext-tokenizer
  • APC or Redis for caching.
  • A database driver for your DB, such as MySQL, PostgreSQL or SQLite.
  • Git

Features

The cachet project, although is open source, offers almost every feature just like other premium tools do, but it's free as long as you know how to setup the project on your server:

  • List your service components
  • Report incidents
  • Customise the look of your status page
  • Markdown support for incident messages
  • A powerful JSON API
  • Metrics
  • Multi-lingual
  • Subscriber notifications via email
  • Two factor authentication
  • Log incidents
  • Apply a custom stylesheet to the status page
  • Markdown support for incident messages
  • RESTful API
  • Translated into several languages
  • Easy Heroku deployment
  • Metrics
  • Cross-database support: MySQL, PostgreSQL and SQLite

Within the dashboard you're able to setup metrics - a way to measure something, whether it's uptime, error rates or something completely random like Cups of coffee drank today. Using the API you can send a point to the metric. If you want your customers to be able to subscribe to e-mail alerts, check out the Cachet e-mail setup docs. One of the most powerful features of Cachet is the ability to automatically send notification emails to anybody who has subscribed to your status page whenever an incident is created. Cachet is built on the belief that your service status is open and transparent, therefore all GET requests are public and require no authentication to access the information. The following are exempt from this rule:

  • Disabled components will only return in the Component API if you provide a valid API token.
  • The Subscribers API will only work if you provide a valid API token, we don't want to expose email addresses.

All other requests require authentication, either with Basic Auth or the preferred API Token. For more information about this project, don't forget to visit either the official repository at Github here or the official website.

Happy coding !


Senior Software Engineer at Software Medico. Interested in programming since he was 14 years old, Carlos is a self-taught programmer and founder and author of most of the articles at Our Code World.

Sponsors