- 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
- PHP 5.5.9+ or newer
- Composer
The following extra dependencies are required to develop Cachet:
- Node.js
- Bower
- Gulp
You can now find our documentation at https://docs.cachethq.io.
To test out the demo, you may login to the Dashboard with the following:
- Username: [email protected]
- Password: test123
The demo is reset every half hour.
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.
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!
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.
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.
- cachet-monitor - For URL monitoring. Automatic incident updates.
- sensu-cachet - Sensu handler for updating CachetHQ.
For more information on why I started developing Cachet, check out my Cachet articles on my blog.
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.