Matrix-Synapse/docker-compose.yml

167 lines
4 KiB
YAML
Raw Permalink Normal View History

2025-02-04 15:09:36 +01:00
services:
synapse:
depends_on:
caddy:
condition: service_started
redis:
condition: service_started
2025-02-04 15:09:36 +01:00
postgres:
condition: service_started
container_name: synapse
2025-02-04 15:33:03 +01:00
command: generate
environment:
- SYNAPSE_SERVER_NAME=example.com
2025-02-11 11:27:03 +01:00
- SYNAPSE_REPORT_STATS=yes
2025-02-04 15:09:36 +01:00
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
2025-02-04 19:24:14 +01:00
network_mode: "host"
2025-02-04 15:09:36 +01:00
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"
redis:
container_name: redis
image: redis:8.0-M03-alpine
restart: always
volumes:
- redis_data:/data
networks:
- matrix-network
synapse-federation-sender-1:
image: matrixdotorg/synapse:latest
container_name: synapse-federation-sender-1
restart: unless-stopped
entrypoint: [ "/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-federation-sender-1.yaml" ]
healthcheck:
disable: true
volumes:
- ./synapse:/data:rw
networks:
- matrix-network
user: "1000:1000"
environment:
SYNAPSE_WORKER: synapse.app.federation_sender
depends_on:
- synapse
- redis
synapse-federation-sender-2:
image: matrixdotorg/synapse:latest
container_name: synapse-federation-sender-2
restart: unless-stopped
entrypoint: [ "/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-federation-sender-2.yaml" ]
healthcheck:
disable: true
volumes:
- ./synapse:/data:rw
networks:
- matrix-network
user: "1000:1000"
environment:
SYNAPSE_WORKER: synapse.app.federation_sender
depends_on:
- synapse
- redis
synapse-federation-sender-3:
image: matrixdotorg/synapse:latest
container_name: synapse-federation-sender-3
restart: unless-stopped
entrypoint: [ "/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-federation-sender-3.yaml" ]
healthcheck:
disable: true
volumes:
- ./synapse:/data:rw
networks:
- matrix-network
user: "1000:1000"
environment:
SYNAPSE_WORKER: synapse.app.federation_sender
depends_on:
- synapse
- redis
synapse-federation-sender-4:
image: matrixdotorg/synapse:latest
container_name: synapse-federation-sender-4
restart: unless-stopped
entrypoint: [ "/start.py", "run", "--config-path=/data/homeserver.yaml", "--config-path=/data/workers/synapse-federation-sender-4.yaml" ]
healthcheck:
disable: true
volumes:
- ./synapse:/data:rw
networks:
- matrix-network
user: "1000:1000"
environment:
SYNAPSE_WORKER: synapse.app.federation_sender
depends_on:
- synapse
- redis
2025-02-04 15:09:36 +01:00
networks:
matrix-network:
2025-02-04 15:09:36 +01:00
volumes:
caddy_data:
caddy_config:
synapse-data: