100 lines
2.4 KiB
YAML
100 lines
2.4 KiB
YAML
version: '3.8'
|
|
|
|
networks:
|
|
back:
|
|
volumes:
|
|
synapse_data:
|
|
synapse_db:
|
|
services:
|
|
### ELEMENT
|
|
# synapse is a matrix homeserver running as a service
|
|
synapse:
|
|
image: matrixdotorg/synapse:v1.121.1
|
|
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
|
|
uid: '991'
|
|
gid: '991'
|
|
mode: 0644
|
|
- source: synapse-signingkey-config
|
|
target: /data/matrix.${DWEB_DOMAIN}.signing.key
|
|
uid: '991'
|
|
gid: '991'
|
|
mode: 0644
|
|
- source: synapse-logconfig-config
|
|
target: /data/matrix.${DWEB_DOMAIN}.log.config
|
|
uid: '991'
|
|
gid: '991'
|
|
mode: 0644
|
|
|
|
synapse-pg:
|
|
image: postgres:14-alpine
|
|
healthcheck:
|
|
test: ['CMD', 'pg_isready', '-U', 'postgres']
|
|
environment:
|
|
- 'POSTGRES_DB=synapse'
|
|
- 'POSTGRES_USER=synapse'
|
|
- '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.88
|
|
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
|
|
|