version: "2.3" services: synapse: image: matrixdotorg/synapse:v1.54.0 restart: unless-stopped environment: - SYNAPSE_CONFIG_PATH=/etc/homeserver.yaml - SYNAPSE_REPORT_STATS=yes - UID={{ docker_user.id }} - GID={{ docker_user.id }} volumes: - "{{ app_data_dir }}/synapse/homeserver.yaml:/etc/homeserver.yaml" - "{{ app_data_dir }}/synapse:/data" depends_on: - db labels: - traefik.enable=true - traefik.http.routers.synapse.rule=Host(`matrix.jakehoward.tech`) || Host(`matrix.theorangeone.net`) networks: - default - traefik db: image: postgres:14-alpine restart: unless-stopped environment: - POSTGRES_USER=synapse - POSTGRES_PASSWORD=synapse - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C volumes: - /mnt/tank/dbs/postgres/synapse:/var/lib/postgresql/data redis: image: redis:6-alpine restart: unless-stopped volumes: - /mnt/tank/dbs/redis/synapse:/data admin: image: awesometechnologies/synapse-admin:latest restart: unless-stopped labels: - traefik.enable=true - traefik.http.routers.synapse-admin.rule=Host(`matrix.theorangeone.net`) && PathPrefix(`/admin`) - traefik.http.middlewares.synapse-admin-path.stripprefix.prefixes=/admin - traefik.http.routers.synapse-admin.middlewares=synapse-admin-path@docker networks: - default - traefik networks: traefik: external: true