Combines some tooling for creating a good Docker Swarm Cluster.
- Traefik
- Swarm Dashboard
- Portainer
- Docker Janitor
- Heavily inspired on https://github.com/stefanprodan/swarmprom
- Prometheus
- Unsee Alert Manager
- Grafana
- Gitlab Runner
- Ceph
- Backup
- FluentBit
- Kafka
- Graylog
- Telegrambot
- Install Ubuntu on all VMs you're mean't to use in your Swarm Cluster
- Install the latest Docker package on all VMs
- On one of the VMs:
- Execute
docker swarm init
- Copy the provided command/token
- Execute
- On the other machines, run the provided command so they will join the Swarm Cluster
git clone https://github.com/flaviostutz/docker-swarm-cluster.git
- Setup .env parameters
- Run
initialize-services.sh
- Open http://portainer.mycluster.org and point it to "Local Daemon"
- Look into docker-compose-* files for understanding the cluster topology
- Change the desired compose file for specific cluster configurations
- Run
initialize-all.sh
for updating modified services
- 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
export $(cat .env) && docker stack deploy --compose-file docker-compose-ingress.yml ingress
- Traefik Dashboard: http://traefik.mycluster.org:6060
- docker-compose-admin.yml
export $(cat .env) && docker stack deploy --compose-file docker-compose-admin.yml admin
- Swarm Dashboard: http://swarm-dasboard.mycluster.org
- Portainer: http://portainer.mycluster.org
- Janitor: will perform system prune from time to time to release unused resources
- docker-compose-metrics.yml
export $(cat .env) && docker stack deploy --compose-file docker-compose-metrics.yml metrics
- Prometheus: http://prometheus.mycluster.org
- Grafana: http://grafana.mycluster.org
- Unsee: http://unsee.mycluster.org
- docker-compose-devtools.yml
export $(cat .env) && docker stack deploy --compose-file docker-compose-devtools.yml devtools
- docker-compose-logs.yml
export $(cat .env) && docker stack deploy --compose-file docker-compose-logs.yml logs
- Graylog: http://graylog.mycluster.org
- docker-compose-volumes.yml
export $(cat .env) && docker stack deploy --compose-file docker-compose-volumes.yml logs
- Ceph UI: http://ceph.mycluster.org