A Dockerized version of Cachet.
389 271 20 217

Cachet Docker Image

This is the official repository of the Docker image for Cachet.

Cachet is a beautiful and powerful open source status page system, a free replacement for services such as, and others.

For full documentation, visit the Installing Cachet with Docker page.

Supporting Cachet

Cachet is a BSD-3-licensed open source project. If you'd like to support future development, check out the Cachet Patreon campaign.


  1. Clone this repository
git clone
  1. Edit the docker-compose.yml file to specify your ENV variables.

  2. To build an image containing a specific Cachet release, set the cachet_ver ARG in the docker-compose.yml

The main branch and cachethq/docker:latest Docker automated build are a work in progress / development version of the upstream project. As such, main or latest should not be used in a production environment as it can change at anytime.

We strongly recommend specifying a stable Cachet Release at build time as mentioned above.

  1. Build and run the image
docker-compose build
docker-compose up
  1. cachethq/docker runs on port 8000 by default. This is exposed on host port 80 when using docker-compose.

  2. Setup the APP_KEY

Whilst the container is up and running, find the name of the Cachet container via docker ps.

Run docker exec -i ID_OF_THE_CONTAINER php artisan key:generate.

Replace ${APP_KEY:-null} in docker-compose.yml with the newly generated Application key.

Note: make sure you include base64: prefix. E.g. base64:YOUR_UNIQUE_KEY

Restart the Docker containers.

Docker Hub Automated build

cachethq/docker is available as a Docker Hub Trusted Build.

For a full list of Cachet versions released as Docker images please see the list of Docker hub tags.

Please use a tagged Cachet Docker image release or one of the tagged builds from with docker pull cachethq/docker:2.3.12.


  • The services such as Cachet, supervisord, nginx, and php-fpm log to stdout and stderr, and are visible in the Docker runtime output.

  • Setting the DEBUG Docker environment variable within the docker-compose.yml file or at runtime to true will enable debugging of the container entrypoint init script.


Pull requests must pass the Bash Automated Testing System tests, which run on Travis CI via located in the test directory.

Use make test to manually run the tests.

Development of Cachet using this docker environment

  1. Clone the official repo of CachetHQ/Docker:
git clone cachet-docker
cd cachet-docker
git tag -l
git checkout $LATEST_TAG
  1. Clone the official repo of CachetHQ/Cachet here and do composer install:
git clone
  1. Setup the Cachet project:

Note: This requires Composer be installed on your Docker host.

cd Cachet
composer install
cp ../conf/.env.docker ./.env
cd ..
  1. Edit the docker-compose.yml file to bind mount the repo as a volume:
    - ./Cachet/:/var/www/html/
  1. Build and run the container:
docker-compose up
  1. Open new terminal and run the following commands after getting container name via docker ps:
docker exec -i cachetdocker_cachet_1  php artisan key:generate
docker exec -i cachetdocker_cachet_1  php artisan app:install