/Cachet

An open source status page system written in PHP

Primary LanguagePHPBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

Cachet Deploy

StyleCI Build Status Quality Score Software License Gitter

Current progress

For more information on why I started developing Cachet, check out my blog post, for more read [What's next for Cachet?](What's next for Cachet?) A demo, deployed to Heroku.

Currently in development. Things may change or break until a solid release has been announced.

Features

  • List your services components.
  • Log incidents.
  • Override status page colors.
  • Apply a custom stylesheet to the status page.
  • Markdown support for incident messages.
  • RESTful API.
  • Multilingual.

Requirements

  • PHP 5.4 or newer
  • mcrypt extension
  • Composer

Development Requirements

The following extra dependencies are required to develop Cachet.

  • Node.js
    • Bower
    • Gulp

Installation & Documentation

You can now find our documentation at https://docs.cachethq.io or, directly at http://cachet.readme.io.

What Cachet is not

Here is a list of things that Cachet is not or does not do:

  1. It does not monitor your services. It works only as a way to display the status of your services. However, Cachet is able to recieve updates from third-party services via its API.
  2. It does not work on a plugin system. There are no monitoring services to extend.
  3. It's not a Twitter clone.

Quickstart with Docker

Run a DB container (you can either pass in environment variables for the DB, or mount a config with -v /my/database.php:/var/www/html/app/config/database.php):

$ export DB_USERNAME=cachet
$ export DB_PASSWORD=cachet
$ export DB_ROOT_PASSWORD=cachet
$ export DB_DATABASE=cachet
$ docker run --name mysql -e MYSQL_USER=$DB_USERNAME -e MYSQL_PASSWORD=$DB_PASSWORD  -e MYSQL_ROOT_PASSWORD=$DB_ROOT_PASSWORD -e MYSQL_DATABASE=$DB_DATABASE -d mysql

Initialize the DB if you havent yet:

$ docker run --link mysql:mysql -e DB_HOST=mysql -e DB_DATABASE=$DB_DATABASE -e DB_USERNAME=$DB_USERNAME -e DB_PASSWORD=$DB_PASSWORD cachethq/cachet:latest php artisan migrate --force

Run Cachet:

$ docker run -d --name cachet --link mysql:mysql -p 80:8000 -e DB_HOST=mysql -e DB_DATABASE=$DB_DATABASE -e DB_USERNAME=$DB_USERNAME -e DB_PASSWORD=$DB_PASSWORD cachethq/cachet:latest

Now go to http://<ipdockerisboundto>/setup and have fun!

Note: When running in production you should ensure that you enable SSL. This is commonly achieved by running Nginx with your certificates on your Docker host, service or load balancers infront of the running container, or by adding your custom SSL certificates and configuration to the supplied Nginx configuration.

Translations

A special thank you to our translators, who have allowed us to share Cachet with the world. If you'd like to contribute translations, please check out our CrowdIn project.