Skip to content

Instantly share code, notes, and snippets.

@ThomasHalwax
Created January 24, 2023 12:33
Show Gist options
  • Save ThomasHalwax/63d61c998071d074f5ae0b7dee9cfa62 to your computer and use it in GitHub Desktop.
Save ThomasHalwax/63d61c998071d074f5ae0b7dee9cfa62 to your computer and use it in GitHub Desktop.
a docker compose file for two matrix synapse server doing federation
services:
matrix-left-org:
image: matrixdotorg/synapse:v1.71.0
hostname: synapse.left-org.lan
networks:
- matrix-lan
ports:
- 8808:8008
volumes:
- synapse-left-org:/data
labels:
- traefik.enable=true
# CLIENT
- traefik.http.routers.left-org-client.rule=Host(`matrix.left-org.lan`)
- traefik.http.routers.left-org-client.entrypoints=matrix-client
- traefik.http.routers.left-org-client.service=left-org-client
- traefik.http.routers.left-org-client.tls=true
- traefik.http.services.left-org-client.loadbalancer.server.port=8008
- traefik.http.services.left-org-client.loadbalancer.healthcheck.path=/health
# FEDERATION
- traefik.http.routers.left-org-federation.rule=Host(`matrix.left-org.lan`)
- traefik.http.routers.left-org-federation.entrypoints=matrix-federation
- traefik.http.routers.left-org-federation.service=left-org-federation
- traefik.http.routers.left-org-federation.tls=true
- traefik.http.services.left-org-federation.loadbalancer.server.port=8448
- traefik.http.services.left-org-federation.loadbalancer.healthcheck.path=/health
matrix-right-org:
image: matrixdotorg/synapse:v1.71.0
hostname: synapse.right-org.lan
networks:
- matrix-lan
ports:
- 8908:8008
volumes:
- synapse-right-org:/data
labels:
- traefik.enable=true
# CLIENT
- traefik.http.routers.right-org-client.rule=Host(`matrix.right-org.lan`)
- traefik.http.routers.right-org-client.entrypoints=matrix-client
- traefik.http.routers.right-org-client.service=right-org-client
- traefik.http.routers.right-org-client.tls=true
- traefik.http.services.right-org-client.loadbalancer.server.port=8008
- traefik.http.services.right-org-client.loadbalancer.healthcheck.path=/health
# FEDERATION
- traefik.http.routers.right-org-federation.rule=Host(`matrix.right-org.lan`)
- traefik.http.routers.right-org-federation.entrypoints=matrix-federation
- traefik.http.routers.right-org-federation.service=right-org-federation
- traefik.http.routers.right-org-federation.tls=true
- traefik.http.services.right-org-federation.loadbalancer.server.port=8448
- traefik.http.services.right-org-federation.loadbalancer.healthcheck.path=/health
traefik:
image: traefik:v2.9.5
command: --api.insecure=true --providers.docker
hostname: traefik.lan
networks:
matrix-lan:
aliases:
- "matrix.left-org.lan"
- "matrix.right-org.lan"
ports:
# synapse client
- 8008:8008
# The Web UI (enabled by --api.insecure=true)
- 8080:8080
# synapse federation
- 8448:8448
volumes:
- traefik-right-org:/etc/traefik
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
matrix-lan:
driver: bridge
ipam:
driver: default
config:
- subnet: "172.28.29.0/24"
gateway: "172.28.29.1"
volumes:
synapse-left-org:
driver: local
driver_opts:
o: bind
type: none
device: /Users/Container/synapse-left-org
synapse-right-org:
driver: local
driver_opts:
o: bind
type: none
device: /Users/Container/synapse-right-org
traefik-right-org:
driver: local
driver_opts:
o: bind
type: none
device: /Users/Container/traefik-right-org
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment