/docker-cabot

Docker and docker-compose files for Cabot

Primary LanguageDockerfile

Build Status

Supported tags and respective Dockerfile links

What is Cabot?

Cabot is a free, open-source, self-hosted infrastructure monitoring platform that provides some of the best features of PagerDuty, Server Density, Pingdom and Nagios without their cost and complexity.

github.com/arachnys/cabot

How to use this image

$ docker run -d --name cabot-redis redis

  • Start a Postgres container

$ docker run -d --name cabot-postgres postgres

  • Run the initial database migrations

$ docker run --rm --env-file production.env --link cabot-postgres:postgres cabotapp/cabot cabot migrate

  • Start the cabot webserver

$ docker run -d --name cabot-web --env-file production.env --link cabot-postgres:postgres --link cabot-redis:redis -p 5000:5000 cabotapp/cabot gunicorn cabot.wsgi:application -b 0.0.0.0:5000

  • You also need a celery worker and scheduler to run the status checks

$ docker run -d --name cabot-worker --env-file production.env --link cabot-postgres:postgres --link cabot-redis:redis cabotapp/cabot celery worker -A cabot

$ docker run -d --name cabot-beat --env-file production.env --link cabot-postgres:postgres --link cabot-redis:redis cabotapp/cabot celery beat -A cabot

Using kubernetes

Kubernetes files are templated using kubetpl.

To apply them, create a configuration file as above (e.g. conf/production.env) and run

kubetpl -c . -i .env -s HOST=cabot.example.com kubernetes/* | kubectl apply -f -

This will create all the deployments and services you need including the database. It create's an ingress with SSL enabled using https://github.com/jetstack/cert-manager - you may wish to change the ingress or change the web-service to be a loadbalancer or node port

Using Helm

Cabot can now be installed using Helm.

Simply clone the repository and run

helm install charts/cabot --set ingress.hostname=cabot.example.com

You'll need to apply any configuration changes in charts/cabot/values.yaml

Using docker-compose

You can set up a complete cabot stack easily using docker-compose.

  • Clone the docker-cabot repository

git clone https://github.com/cabotapp/docker-cabot

  • Copy your cabot config to conf/production.env

  • Run docker-compose up -d

By default the compose file only binds on localhost. We recommend putting it behind a reverse proxy such as nginx or Caddy, but if you want you can change it to bind publicly on port 80.

There is a Caddyfile included which will automatically set up HTTPS using Let's Encrypt.

Issues

If you have any problems using these images please make a github issue on cabotapp/docker-cabot.

For any problems relating to Cabot itself, please make issues on arachnys/cabot