By default, the file cache is used, but this breaks the throttling detection when authenticating. The APC cache is tagged and will allow you to log in again after installation. --- When changing the sort order, a form with hidden inputs for every component was serialized. The hidden inputs had names in the form of `component[id]`. When you removed components, there would be holes in this ID sequence, yielding a serialized array with empty values (since JS arrays always have every index until the highest one, even if you don't specify a value). This is fixed by just passing an array of component IDs in the desired sort order to the API endpoint. The API will then update the components based on the implicit given sort order. Much simpler.
Cachet
Currently in development. Things may change or break until a solid release has been announced.
Features
- List your services components.
- Log incidents.
- Apply a custom stylesheet to the status page.
- Markdown support for incident messages.
- RESTful API.
- Translated into several languages.
- Metrics.
- Cross-database support: MySQL, PostgreSQL and SQLite.
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 if the first link fails to load. Cachet Demo.
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 past the 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 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 --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.
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.