feat: add postgres 16 for synapse (local disk, C collation) ahead of MAS

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-20 14:59:35 -05:00
parent 986f219135
commit a220e7903b
+12 -11
View File
@@ -1,20 +1,20 @@
services: services:
synapse: synapse:
image: matrixdotorg/synapse:latest # 2026-08-20: matrixdotorg repo is abandoned (froze at 1.148.0); upstream is now element-hq.
# Pinned deliberately so the running version is visible in the file - bump manually.
image: ghcr.io/element-hq/synapse:v1.159.0
container_name: synapse container_name: synapse
restart: unless-stopped restart: unless-stopped
environment: environment:
- SYNAPSE_SERVER_NAME=mess.hobbs.farm - SYNAPSE_SERVER_NAME=mess.hobbs.farm
- SYNAPSE_REPORT_STATS=no - SYNAPSE_REPORT_STATS=no
volumes: volumes:
- /mnt/docker-data/configs/matrix/data:/data # 2026-08-20: moved off NFS -> local NVMe (SQLite locking, Known Issue #16)
- /var/lib/synapse:/data
ports: ports:
- "8008:8008" - "8008:8008"
networks: networks:
- matrix-internal - matrix-internal
depends_on:
synapse-db:
condition: service_healthy
mem_limit: 1G mem_limit: 1G
memswap_limit: 1G memswap_limit: 1G
healthcheck: healthcheck:
@@ -52,21 +52,22 @@ services:
max-file: "3" max-file: "3"
synapse-db: synapse-db:
image: postgres:15-alpine image: postgres:16-alpine
container_name: synapse-db container_name: synapse-db
user: "1024:100"
restart: unless-stopped restart: unless-stopped
environment: environment:
- POSTGRES_USER=synapse - POSTGRES_USER=synapse
- POSTGRES_PASSWORD=synapse - POSTGRES_PASSWORD=MnLASftPXou9ubOmawmALYwROwgM
- POSTGRES_DB=synapse - POSTGRES_DB=synapse
# C collation is MANDATORY - Synapse refuses any other
- POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C
volumes: volumes:
- /mnt/docker-data/databases/matrix-db:/var/lib/postgresql/data # LOCAL disk, never NFS (Known Issue #16). No user: 1024:100 - that is an NFS workaround.
- /var/lib/synapse-db:/var/lib/postgresql/data
networks: networks:
- matrix-internal - matrix-internal
mem_limit: 256M mem_limit: 512M
memswap_limit: 256M memswap_limit: 512M
labels: labels:
- "com.centurylinklabs.watchtower.enable=false" - "com.centurylinklabs.watchtower.enable=false"
healthcheck: healthcheck: