services: synapse: image: docker.io/matrixdotorg/synapse:latest@sha256:edf3eb840f113fc6a9abe8abb7f0c048e68a9f7f941ae86fb12ee25fb9b3f556 restart: unless-stopped environment: - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml - VIRTUAL_PORT=8008 volumes: - files:/data - uploads:/data/uploads - media:/data/media labels: - "traefik.enable=true" - "traefik.http.routers.matrix.rule=Host(`${DC_MATRIX_HOSTNAME:?}`)" - "traefik.http.routers.matrix.entrypoints=websecure" depends_on: - db networks: - traefik - matrix db: image: docker.io/postgres:12-alpine@sha256:1d58ba6289212caace7c3970cb3922a5b45fd2af5d1724fde280dab4a5c7a762 restart: unless-stopped environment: - POSTGRES_USER=${DC_MATRIX_POSTGRES_USER:-synapse} - POSTGRES_PASSWORD=${DC_MATRIX_POSTGRES_PASSWORD:?} - POSTGRES_DB=${DC_MATRIX_POSTGRES_DB:-synapse} # ensure the database gets created correctly # https://matrix-org.github.io/synapse/latest/postgres.html#set-up-database - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C volumes: - schemas:/var/lib/postgresql/data networks: - matrix mautrix-whatsapp: container_name: mautrix-whatsapp image: dock.mau.dev/mautrix/whatsapp:latest@sha256:08732b016c82a7cf7aacf13224d4bb0af40047d5de7e7cd19aae728b65f581ad restart: unless-stopped volumes: - mautrix-whatsapp:/data networks: - matrix depends_on: - db - synapse mautrix-meta: container_name: mautrix-meta image: dock.mau.dev/mautrix/meta:latest@sha256:b9eb17669489c225b370d6fa8c93525ab17a87d7523cd5d8834b80c3f293e96f restart: unless-stopped volumes: - mautrix-meta:/data networks: - matrix depends_on: - db - synapse mautrix-signal: container_name: mautrix-signal image: dock.mau.dev/mautrix/signal:latest@sha256:e05d45f5843ba24c9272ccdd401697380f620a478921e4a1a574f97c1ae045a4 restart: unless-stopped volumes: - mautrix-signal:/data networks: - matrix depends_on: - db - synapse volumes: files: uploads: media: schemas: mautrix-whatsapp: mautrix-meta: mautrix-signal: networks: traefik: external: true matrix: