services: synapse: depends_on: caddy: condition: service_started postgres: condition: service_started container_name: synapse command: generate environment: - SYNAPSE_SERVER_NAME=example.com image: matrixdotorg/synapse:latest restart: unless-stopped volumes: - ./synapse:/data networks: - matrix-network user: "1000:1000" coturn: depends_on: caddy: condition: service_started container_name: coturn image: coturn/coturn:latest restart: unless-stopped network_mode: "host" volumes: - ./coturn/turnserver.conf:/etc/coturn/turnserver.conf - caddy_data:/etc/ssl/caddy:ro caddy: container_name: caddy image: caddy/caddy:latest restart: unless-stopped networks: - matrix-network cap_add: - NET_ADMIN ports: - "80:80" - "443:443" - "443:443/udp" - "8448:8448" volumes: - ./caddy:/etc/caddy - caddy_data:/data - caddy_config:/config postgres: container_name: postgres-synapse image: postgres:14-alpine volumes: - ~/apps/postgres:/var/lib/postgresql/data environment: - POSTGRES_PASSWORD= - POSTGRES_USER=synapse - POSTGRES_DB=synapse - POSTGRES_INITDB_ARGS=--encoding=UTF-8 --lc-collate=C --lc-ctype=C networks: - matrix-network synapse-admin: depends_on: caddy: condition: service_started container_name: matrix-admin image: ghcr.io/etkecc/synapse-admin:latest networks: - matrix-network restart: "unless-stopped" networks: matrix-network: volumes: caddy_data: caddy_config: synapse-data: