70 lines
2.1 KiB
Django/Jinja
70 lines
2.1 KiB
Django/Jinja
services:
|
|
matrix-db:
|
|
image: postgres:16-alpine
|
|
container_name: matrix-db
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: synapse
|
|
POSTGRES_PASSWORD: "{{ matrix_db_password }}"
|
|
POSTGRES_DB: synapse
|
|
POSTGRES_INITDB_ARGS: "--encoding='UTF8' --lc-collate='C' --lc-ctype='C'"
|
|
volumes:
|
|
- {{ matrix_data_dir }}/db:/var/lib/postgresql/data
|
|
networks:
|
|
- internal
|
|
logging:
|
|
driver: gelf
|
|
options:
|
|
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
|
|
tag: "matrix-db"
|
|
|
|
synapse:
|
|
image: ghcr.io/element-hq/synapse:{{ matrix_version }}
|
|
container_name: synapse
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- matrix-db
|
|
environment:
|
|
SYNAPSE_CONFIG_PATH: /data/homeserver.yaml
|
|
volumes:
|
|
- {{ matrix_data_dir }}/synapse:/data
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.matrix.rule=Host(`{{ matrix_domain }}`)"
|
|
- "traefik.http.routers.matrix.tls=true"
|
|
- "traefik.http.routers.matrix.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.matrix.loadbalancer.server.port=8008"
|
|
networks:
|
|
- internal
|
|
- {{ sovereign_network_name }}
|
|
logging:
|
|
driver: gelf
|
|
options:
|
|
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
|
|
tag: "synapse"
|
|
|
|
element:
|
|
image: vectorim/element-web:latest
|
|
container_name: element
|
|
restart: unless-stopped
|
|
volumes:
|
|
- {{ matrix_data_dir }}/element/config.json:/app/config.json:ro
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.http.routers.element.rule=Host(`{{ element_domain }}`)"
|
|
- "traefik.http.routers.element.tls=true"
|
|
- "traefik.http.routers.element.tls.certresolver=letsencrypt"
|
|
- "traefik.http.services.element.loadbalancer.server.port=80"
|
|
networks:
|
|
- {{ sovereign_network_name }}
|
|
logging:
|
|
driver: gelf
|
|
options:
|
|
gelf-address: "udp://{{ graylog_host }}:{{ graylog_gelf_port }}"
|
|
tag: "element"
|
|
|
|
networks:
|
|
internal:
|
|
{{ sovereign_network_name }}:
|
|
external: true
|