docker/matrix/docker-compose.yml

66 lines
1.6 KiB
YAML

version: "3.8"
services:
app:
image: matrixdotorg/synapse:v1.83.0
depends_on:
- db
expose:
- "8008"
restart: unless-stopped
networks:
- proxy
- default
environment:
- SYNAPSE_CONFIG_PATH=/data/homeserver.yaml
- UID=1000
- GID=1000
volumes:
- ${DATA_PATH}/synapse:/data
env_file: secrets/app.secrets
healthcheck:
test: ["CMD", "curl", "-fSs", "http://localhost:8008/health"]
interval: 15s
timeout: 5s
retries: 3
start_period: 5s
labels:
- "traefik.enable=true"
- "traefik.docker.network=proxy"
- "traefik.http.services.synapse-svc.loadbalancer.server.port=8008"
- "traefik.http.routers.synapse.service=synapse-svc"
- "traefik.http.routers.synapse.entrypoints=websecure"
- "traefik.http.routers.synapse.rule=Host(`${SYNAPSE_CN}`)"
db:
image: postgres:13.14-alpine
env_file: ./secrets/db.secrets
environment:
- LC_COLLATE=C
- LC_CTYPE=C
- LANG=fr_FR.UTF-8
restart: unless-stopped
volumes:
- ${DATA_PATH}/db/data:/var/lib/postgresql/data
- ${DATA_PATH}/db/.pgpass:/root/.pgpass
labels:
- "co.elastic.logs/module=postgresql"
- "co.elastic.logs/fileset=log"
signal-bridge:
image: dock.mau.dev/mautrix/signal:latest
restart: unless-stopped
volumes:
- ${DATA_PATH}/mautrix-signal:/data:z
- ${DATA_PATH}/signald:/signald
signald:
image: docker.io/signald/signald
restart: unless-stopped
volumes:
- ${DATA_PATH}/signald:/signald
networks:
proxy:
external: true