# This file can be used to setup a Dgraph cluster with 6 Dgraph Alphas and 3 Dgraph Zero nodes on a # Docker Swarm with replication. This setup ensures high availability for both Zero and Alpha. # It expects six virtual machines with hostnames host1, host2, host3, host4, host5 and host6 to # be part of the swarm. There is a constraint to make sure that each Dgraph Alpha runs on a # particular host. Dgraph Zero nodes run on host1, host2 and host3. # Data would be persisted to a docker volume called data-volume on the virtual machines which are # part of the swarm. # Run `docker stack deploy -c docker-compose-ha.yml` on the Swarm leader to start the cluster. # NOTE: whitelisting is set to private address ranges, this is ONLY for a local setup # please change it accordingly for your production setup # more here https://dgraph.io/docs/deploy/dgraph-administration/#whitelisting-admin-operations version: "3.2" networks: dgraph: services: zero1: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "zero1" working_dir: /dgraph volumes: - /media/psf/1/zero/zero1:/dgraph ports: - 5080:5080 - 6080:6080 networks: - dgraph command: dgraph zero --my=zero1:5080 --rebalance_interval 30m --replicas 3 --raft="idx=1" zero2: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "zero2" working_dir: /dgraph volumes: - /media/psf/1/zero/zero2:/dgraph ports: - 5080:5080 - 6080:6080 networks: - dgraph command: dgraph zero -o 1 --my=zero2:5080 --rebalance_interval 30m --replicas 3 --peer zero1:5080 --raft="idx=2" zero3: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "zero3" working_dir: /dgraph volumes: - /media/psf/1/zero/zero3:/dgraph ports: - 5080:5080 - 6080:6080 networks: - dgraph command: dgraph zero -o 2 --my=zero3:5080 --rebalance_interval 30m --replicas 3 --peer zero1:5080 --raft="idx=3" alpha1: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "alpha1" working_dir: /dgraph volumes: - /media/psf/1/alpha/alpha1:/dgraph ports: - 8080:8080 - 9080:9080 networks: - dgraph command: dgraph alpha --my=alpha1:7080 --security whitelist=0.0.0.0/0 --zero=zero1:5080,zero2:5080,zero3:5080 alpha2: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "alpha2" working_dir: /dgraph volumes: - /media/psf/1/alpha/alpha2:/dgraph ports: - 8080:8080 - 9080:9080 networks: - dgraph command: dgraph alpha --my=alpha2:7080 --security whitelist=0.0.0.0/0 --zero=zero1:5080,zero2:5080,zero3:50508082 -o 1 alpha3: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "alpha3" working_dir: /dgraph volumes: - /media/psf/1/alpha/alpha3:/dgraph ports: - 8080:8080 - 9080:9080 networks: - dgraph command: dgraph alpha --my=alpha3:7080 --security whitelist=0.0.0.0/0 --zero=zero1:5080,zero2:5080,zero3:5080 -o 2 alpha4: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "alpha4" working_dir: /dgraph volumes: - /media/psf/1/alpha/alpha4:/dgraph ports: - 8080:8080 - 9080:9080 networks: - dgraph command: dgraph alpha --my=alpha4:7080 --security whitelist=0.0.0.0/0 --zero=zero1:5080,zero2:5080,zero3:5080 -o 3 alpha5: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "alpha5" working_dir: /dgraph volumes: - /media/psf/1/alpha/alpha5:/dgraph ports: - 8080:8080 - 9080:9080 networks: - dgraph command: dgraph alpha --my=alpha5:7080 --security whitelist=0.0.0.0/0 --zero=zero1:5080,zero2:5080,zero3:5080 -o 4 alpha6: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "alpha6" working_dir: /dgraph volumes: - /media/psf/1/alpha/alpha6:/dgraph ports: - 8080:8080 - 9080:9080 networks: - dgraph command: dgraph alpha --my=alpha6:7080 --security whitelist=0.0.0.0/0 --zero=zero1:5080,zero2:5080,zero3:5080 -o 5 alpha7: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "alpha7" working_dir: /dgraph volumes: - /media/psf/1/alpha/alpha7:/dgraph ports: - 8080:8080 - 9080:9080 networks: - dgraph command: dgraph alpha --my=alpha7:7080 --security whitelist=0.0.0.0/0 --zero=zero1:5080,zero2:5080,zero3:5080 -o 6 alpha8: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "alpha8" working_dir: /dgraph volumes: - /media/psf/1/alpha/alpha8:/dgraph ports: - 8080:8080 - 9080:9080 networks: - dgraph command: dgraph alpha --my=alpha8:7080 --security whitelist=0.0.0.0/0 --zero=zero1:5080,zero2:5080,zero3:5080 -o 7 alpha9: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/dgraph:v22.0.2 hostname: "alpha9" working_dir: /dgraph volumes: - /media/psf/1/alpha/alpha9:/dgraph ports: - 8080:8080 - 9080:9080 networks: - dgraph command: dgraph alpha --my=alpha6:7080 --security whitelist=0.0.0.0/0 --zero=zero1:5080,zero2:5080,zero3:5080 -o 8 ratel: ulimits: nproc: 1048576 nofile: soft: 1048576 hard: 1048576 image: dgraph/ratel:latest ports: - 8000:8000 command: dgraph-ratel