66 lines
2.6 KiB
YAML
66 lines
2.6 KiB
YAML
# {{ ansible_managed }}
|
|
|
|
services:
|
|
synapse:
|
|
image: matrixdotorg/synapse:{{ docker_synapse_version }}
|
|
volumes:
|
|
- {{ docker_synapse_data_dir }}/{{ docker_synapse_service_id }}/synapse_data:/data
|
|
{% if docker_synapse_gen_config is false %}
|
|
- ./homeserver.yaml:/data/homeserver.yaml
|
|
{% endif %}
|
|
restart: always
|
|
depends_on:
|
|
- db
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik"
|
|
- "traefik.http.routers.{{ docker_synapse_service_id }}.entrypoints=web"
|
|
- "traefik.http.routers.{{ docker_synapse_service_id }}.rule=Host(`{{ docker_synapse_fqdn }}`)"
|
|
- "traefik.http.services.{{ docker_synapse_service_id }}.loadbalancer.server.port=8008"
|
|
networks:
|
|
- synapse
|
|
- traefik
|
|
environment:
|
|
- SYNAPSE_SERVER_NAME={{ docker_synapse_server_name }}
|
|
- SYNAPSE_REPORT_STATS={{ docker_synapse_report_stats }}
|
|
|
|
db:
|
|
restart: always
|
|
image: postgres:14
|
|
shm_size: 256mb
|
|
networks:
|
|
- synapse
|
|
healthcheck:
|
|
test: ['CMD', 'pg_isready', '-U', 'postgres']
|
|
volumes:
|
|
- {{ docker_synapse_data_dir }}/{{ docker_synapse_service_id }}/db_data:/var/lib/postgresql/data
|
|
environment:
|
|
POSTGRES_DB: "{{ docker_synapse_db_name }}"
|
|
POSTGRES_USER: "{{ docker_synapse_db_user }}"
|
|
POSTGRES_PASSWORD: "{{ docker_synapse_db_password }}"
|
|
POSTGRES_INITDB_ARGS: "--encoding=UTF-8 --lc-collate=C --lc-ctype=C"
|
|
|
|
synapse-admin:
|
|
image: awesometechnologies/synapse-admin:latest
|
|
restart: always
|
|
volumes:
|
|
- ./synapse-admin-config.json:/app/config.json:ro
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=traefik"
|
|
- "traefik.http.routers.{{ docker_synapse_service_id }}_admin.entrypoints=web"
|
|
- "traefik.http.routers.{{ docker_synapse_service_id }}_admin.rule=Host(`{{ docker_synapse_fqdn }}`) && PathPrefix(`/synapse-admin`)"
|
|
- "traefik.http.services.{{ docker_synapse_service_id }}_admin.loadbalancer.server.port=80"
|
|
- "traefik.http.routers.{{ docker_synapse_service_id }}_admin.middlewares={{ docker_synapse_service_id }}_admin,{{ docker_synapse_service_id }}_admin_path"
|
|
- "traefik.http.middlewares.{{ docker_synapse_service_id }}_admin.redirectregex.regex=^(.*)/synapse-admin/?"
|
|
- "traefik.http.middlewares.{{ docker_synapse_service_id }}_admin.redirectregex.replacement=$${1}/synapse-admin/"
|
|
- "traefik.http.middlewares.{{ docker_synapse_service_id }}_admin_path.stripprefix.prefixes=/synapse-admin"
|
|
networks:
|
|
- traefik
|
|
|
|
|
|
networks:
|
|
traefik:
|
|
external: true
|
|
synapse:
|
|
internal: true
|