version: "2.3" services: synapse: image: matrixdotorg/synapse:v1.91.2 restart: unless-stopped environment: - SYNAPSE_CONFIG_PATH=/etc/homeserver.yaml - SYNAPSE_REPORT_STATS=yes - UID={{ docker_user.id }} - GID={{ docker_user.id }} - HTTP_PROXY={{ pve_hosts.qbittorrent.ip }}:3128 - HTTPS_PROXY={{ pve_hosts.qbittorrent.ip }}:3128 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`) networks: - default - traefik db: image: postgres:16-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/speed/dbs/postgres/synapse:/var/lib/postgresql/data redis: image: redis:7-alpine restart: unless-stopped volumes: - /mnt/speed/dbs/redis/synapse:/data admin: image: awesometechnologies/synapse-admin:latest restart: unless-stopped labels: - traefik.enable=true - traefik.http.routers.synapse-admin.rule=Host(`synapse-admin.jakehoward.tech`) networks: - default - traefik networks: traefik: external: true