/Cachet

An open source status page system, for everyone.

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

Cachet

StyleCI Build Status Quality Score Software License Crowdin

Screenshot

Features

  • List your services components
  • Log incidents
  • Apply custom CSS to the status page
  • Markdown support for incident messages
  • JSON API
  • Translated into eleven languages
  • Metrics
  • Cross-database support: MySQL, PostgreSQL and SQLite
  • Subscriber notifications via Email
  • Two factor authentication, with Google Authenticator

Requirements

Development Requirements

The following extra dependencies are required to develop Cachet:

  • Node.js
  • Bower
  • Gulp

Installation, Upgrades and Documentation

You can now find our documentation at https://docs.cachethq.io.

Demo Account

To test out the demo, you may login to the Dashboard with the following:

The demo is reset every half hour.

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 receive 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 Vagrant

If you would like to utilize laravel homestead, we have a per-project installation available to use for development purposes.

First, modify Homestead.yaml to map your Cachet directory to the Vagrant VM properly. It looks like this by default:

folders:
    - map: "/srv/www/Cachet"
      to: "/home/vagrant/Cachet"

Change the map key to the location of your Cachet installation and follow the instructions below.

# Copy over your environment variables
$ cp .env.example .env

# Initiate VM
$ vagrant up

# Generate application key
$ php artisan key:generate

# SSH into your machine
$ vagrant ssh

# Run migrations
$ cd Cachet && php artisan migrate

Navigate to http://192.168.10.10 and begin using Cachet!

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 haven't yet:

$ docker run --rm --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 in-front of the running container, or by adding your custom SSL certificates and configuration to the supplied Nginx configuration.

docker-compose

Quickly launch Cachet and MySQL docker images with docker-compose

git clone https://github.com/cachethq/Cachet.git
cd Cachet
docker-compose build
docker-compose up

To initialize the database, utilize docker exec:

docker exec -it cachet_cachet_1 php artisan migrate --force

Continue to http://<ipdockerisboundto>/setup to configure Cachet.

Addons

Read more about Cachet

For more information on why I started developing Cachet, check out my Cachet articles on my blog.

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.