docker-compose/conf/compose/element.docker-compose.yml

89 lines
2.2 KiB
YAML

networks:
back:
volumes:
synapse_data:
synapse_db:
services:
### ELEMENT
# synapse is a matrix homeserver running as a service
synapse:
image: matrixdotorg/synapse:v1.127.0
entrypoint:
- sh
- -c
- chown -R 991:991 /data ; /start.py
volumes:
- synapse_data:/data
networks:
- back
ports:
- "127.0.0.1:8008:8008"
environment:
SYNAPSE_CONFIG_DIR: "/data"
SYNAPSE_DATA_DIR: "/data"
TZ: "UA"
configs:
- source: synapse-homeserver-config
target: /data/homeserver.yaml
- source: synapse-signingkey-config
target: /data/matrix.${DWEB_DOMAIN}.signing.key
- source: synapse-logconfig-config
target: /data/matrix.${DWEB_DOMAIN}.log.config
synapse-pg:
image: postgres:14-alpine
healthcheck:
test: ['CMD', 'pg_isready', '-U', 'postgres']
environment:
- 'POSTGRES_DB=synapse'
- 'POSTGRES_USER=postgres'
- 'POSTGRES_HOST_AUTH_METHOD=trust'
- 'POSTGRES_INITDB_ARGS=--encoding="UTF8" --lc-collate="C" --lc-ctype="C"'
volumes:
- synapse_db:/var/lib/postgresql/data
networks:
- back
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.labels.dwebstackdomain == ${DWEB_DOMAIN}
max_replicas_per_node: 1
resources:
limits:
memory: 512M
# element is a matrix web GUI running as a service
element:
image: vectorim/element-web:v1.11.96
networks:
- back
ports:
- "127.0.0.1:8001:8001"
depends_on:
- synapse
configs:
- source: element-json-config
target: /app/config.json
- source: element-nginx-config
target: /etc/nginx/conf.d/default.conf
configs:
synapse-homeserver-config:
file: ../synapse/homeserver.yaml
external: false
synapse-signingkey-config:
file: ../synapse/matrix.${DWEB_DOMAIN}.signing.key
external: false
synapse-logconfig-config:
file: ../synapse/matrix.${DWEB_DOMAIN}.log.config
external: false
element-json-config:
file: ../element/config.json
external: false
element-nginx-config:
file: ../element/nginx.conf
external: false