Combines some general tooling for creating a good Docker Swarm Cluster (Swarm Dashboard, Traefik, Portainer, Prometheus, Grafana)
Clone or download
Latest commit 04b00e3 Oct 3, 2018


Combines some tooling for creating a good Docker Swarm Cluster.

HTTP(S) Ingress

  • Traefik

Cluster Management

  • Swarm Dashboard
  • Portainer
  • Docker Janitor

Metrics Monitoring

CI/CD Tools

  • Gitlab Runner


Volume management

  • Ceph
  • Backup

Logs aggregation

  • FluentBit
  • Kafka
  • Graylog

Metrics Monitoring

  • Telegrambot


  1. Install Ubuntu on all VMs you're mean't to use in your Swarm Cluster
  2. Install the latest Docker package on all VMs
  3. On one of the VMs:
    1. Execute docker swarm init
    2. Copy the provided command/token
  4. On the other machines, run the provided command so they will join the Swarm Cluster
  5. git clone
  6. Setup .env parameters
  7. Run
  8. Open and point it to "Local Daemon"
  9. Look into docker-compose-* files for understanding the cluster topology


  1. Change the desired compose file for specific cluster configurations
  2. Run for updating modified services

docker-compose files

  • Swarm stack doesn't support .env automatically (yet). You have to run export $(cat .env) && docker stack... so that those parameters work
  • docker-compose-ingress.yml
  • docker-compose-admin.yml
  • docker-compose-metrics.yml
  • docker-compose-devtools.yml
    • export $(cat .env) && docker stack deploy --compose-file docker-compose-devtools.yml devtools
  • docker-compose-logs.yml
  • docker-compose-volumes.yml
    • export $(cat .env) && docker stack deploy --compose-file docker-compose-volumes.yml logs
    • Ceph UI: