version: '3' services: traefik: image: "traefik" container_name: matrix-traefik restart: "always" command: - "--api=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.letls.acme.email=admin@doeringer.eu" - "--certificatesresolvers.letls.acme.storage=/certs/acme.json" - "--certificatesresolvers.letls.acme.httpchallenge=true" - "--certificatesresolvers.letls.acme.httpchallenge.entrypoint=web" ports: - "443:443" - "80:80" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "traefik_certs:/certs" nginx: image: "nginx:1.22.0" container_name: matrix-nginx restart: "always" volumes: - /opt/02_messaging/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf:ro synapse: image: docker.io/matrixdotorg/synapse:v1.63.0 container_name: matrix-synapse restart: unless-stopped environment: - SYNAPSE_CONFIG_PATH=/data/homeserver.yaml volumes: - /opt/02_messaging/synapse:/data depends_on: - synapse_db synapse_db: image: docker.io/postgres:14-alpine restart: unless-stopped container_name: matrix-synapse-db environment: - POSTGRES_USER=synapse - POSTGRES_PASSWORD=aComplexPassphraseNobodyCanGuess - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C volumes: - /opt/02_messaging/postgres:/var/lib/postgresql/data