Cachet
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
- PHP 5.5.9+ or newer
- Composer
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:
- Username: test@test.com
- Password: test123
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:
- 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.
- It does not work on a plugin system. There are no monitoring services to extend.
- 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, install dependencies by composer install
and 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
- cachet-monitor - For URL monitoring. Automatic incident updates.
- sensu-cachet - Sensu handler for updating CachetHQ.
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.