Docker-Compose-Setup mit Synapse, Element Web, Synapse-Admin, Caddy als Reverse Proxy und Postgres. Secrets und Laufzeitdaten sind via .gitignore ausgeschlossen; Beispiel-Configs mit Platzhaltern liegen als *.example bei. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y31cBx4B4b56LmzTA9wx76
55 lines
1.2 KiB
YAML
55 lines
1.2 KiB
YAML
services:
|
|
db:
|
|
image: postgres:15
|
|
restart: unless-stopped
|
|
environment:
|
|
- POSTGRES_USER=matrix
|
|
- POSTGRES_DB=synapse
|
|
- POSTGRES_PASSWORD_FILE=/run/secrets/db_password
|
|
- POSTGRES_INITDB_ARGS=--lc-collate=C --lc-ctype=C --encoding=UTF-8
|
|
secrets:
|
|
- db_password
|
|
volumes:
|
|
- ./postgres:/var/lib/postgresql/data
|
|
|
|
synapse:
|
|
image: matrixdotorg/synapse:latest
|
|
restart: unless-stopped
|
|
environment:
|
|
- SYNAPSE_SERVER_NAME=matrix.greif.life-maps.com
|
|
- SYNAPSE_REPORT_STATS=no
|
|
volumes:
|
|
- ./synapse:/data
|
|
depends_on:
|
|
- db
|
|
|
|
element:
|
|
image: vectorim/element-web:latest
|
|
restart: unless-stopped
|
|
volumes:
|
|
- ./element/config.json:/app/config.json:ro
|
|
|
|
element-admin:
|
|
image: awesometechnologies/synapse-admin:latest
|
|
restart: unless-stopped
|
|
|
|
caddy:
|
|
image: caddy:2-alpine
|
|
restart: unless-stopped
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./caddy/Caddyfile:/etc/caddy/Caddyfile:ro
|
|
- ./caddy/data:/data
|
|
- ./caddy/config:/config
|
|
- ./matrix-landing:/var/www/html:ro
|
|
depends_on:
|
|
- synapse
|
|
- element
|
|
- element-admin
|
|
|
|
secrets:
|
|
db_password:
|
|
file: ./secrets/db_password.txt
|