version: "3.4" networks: db: web: external: name: proxy_web services: synapse: image: "matrixdotorg/synapse" volumes: - "/data/config/matrix/synapse/:/data/" environment: - "SYNAPSE_SERVER_NAME=zom.bi" labels: - "traefik.enable=true" - "traefik.http.routers.matrix.rule=Host(`matrix.zom.bi`) && PathPrefix(`/_matrix/`)" - "traefik.http.routers.matrix.entrypoints=websecure" - "traefik.http.routers.matrix.tls=true" - "traefik.http.routers.matrix.tls.certresolver=default" - "traefik.http.services.matrix.loadbalancer.server.port=8008" - "traefik.docker.network=proxy_web" networks: - web - db riot: image: "vectorim/element-web" labels: - "traefik.enable=true" - "traefik.http.routers.riot.rule=Host(`riot.zom.bi`, `matrix.zom.bi`)" - "traefik.http.routers.riot.entrypoints=websecure" - "traefik.http.routers.riot.tls=true" - "traefik.http.routers.riot.tls.certresolver=default" - "traefik.http.services.riot.loadbalancer.server.port=80" - "traefik.docker.network=proxy_web" volumes: - "/data/config/matrix/riot/config.json:/app/config.json" networks: - web db: image: postgres:10 environment: POSTGRES_USER: synapse POSTGRES_PASSWORD: tp4ssw0rd LANG: C POSTGRES_DB: synapse POSTGRES_INITDB_ARGS: "--encoding='UTF8' --lc-collate='C' --lc-ctype='C'" healthcheck: test: '/usr/bin/psql --username synapse --command "SELECT 1;"' interval: 2s timeout: 5s retries: 30 volumes: - "/data/config/matrix/db:/var/lib/postgresql/data" networks: - db