Просмотр исходного кода

Add root path (/) handling to matrix-synapse-reverse-proxy-companion (redirect or /_matrix/static/ serving)

pull/3093/head
Slavi Pantaleev 2 лет назад
Родитель
Сommit
e678adfeda
4 измененных файлов: 58 добавлений и 0 удалений
  1. +4
    -0
      group_vars/matrix_servers
  2. +11
    -0
      roles/custom/matrix-synapse-reverse-proxy-companion/defaults/main.yml
  3. +5
    -0
      roles/custom/matrix-synapse-reverse-proxy-companion/tasks/validate_config.yml
  4. +38
    -0
      roles/custom/matrix-synapse-reverse-proxy-companion/templates/labels.j2

+ 4
- 0
group_vars/matrix_servers Просмотреть файл

@@ -3967,6 +3967,10 @@ matrix_synapse_reverse_proxy_companion_container_labels_traefik_docker_network:
matrix_synapse_reverse_proxy_companion_container_labels_traefik_entrypoints: "{{ devture_traefik_entrypoint_primary }}"
matrix_synapse_reverse_proxy_companion_container_labels_traefik_tls_certResolver: "{{ devture_traefik_certResolver_primary }}"

matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_hostname: "{{ matrix_server_fqn_matrix }}"
matrix_synapse_reverse_proxy_companion_container_labels_client_root_redirection_enabled: "{{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_redirection_url != '' }}"
matrix_synapse_reverse_proxy_companion_container_labels_client_root_redirection_url: "{{ (('https://' if matrix_playbook_ssl_enabled else 'http://') + matrix_server_fqn_element) if matrix_client_element_enabled else '' }}"

matrix_synapse_reverse_proxy_companion_container_labels_client_api_traefik_hostname: "{{ matrix_server_fqn_matrix }}"

matrix_synapse_reverse_proxy_companion_container_labels_federation_api_traefik_hostname: "{{ matrix_server_fqn_matrix }}"


+ 11
- 0
roles/custom/matrix-synapse-reverse-proxy-companion/defaults/main.yml Просмотреть файл

@@ -71,6 +71,17 @@ matrix_synapse_reverse_proxy_companion_container_labels_traefik_docker_network:
matrix_synapse_reverse_proxy_companion_container_labels_traefik_entrypoints: web-secure
matrix_synapse_reverse_proxy_companion_container_labels_traefik_tls_certResolver: default

# Controls whether labels will be added for handling the root (/) path
matrix_synapse_reverse_proxy_companion_container_labels_client_root_enabled: true
matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_hostname: ''
matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_rule: "Host(`{{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_hostname }}`) && Path(`/`)"
matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_priority: 0
matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_entrypoints: "{{ matrix_synapse_reverse_proxy_companion_container_labels_traefik_entrypoints }}"
matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_tls: "{{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_entrypoints != 'web' }}"
matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_tls_certResolver: "{{ matrix_synapse_reverse_proxy_companion_container_labels_traefik_tls_certResolver }}" # noqa var-naming
matrix_synapse_reverse_proxy_companion_container_labels_client_root_redirection_enabled: false
matrix_synapse_reverse_proxy_companion_container_labels_client_root_redirection_url: ""

# Controls whether labels will be added that expose the Client-Server API.
matrix_synapse_reverse_proxy_companion_container_labels_client_api_enabled: true
matrix_synapse_reverse_proxy_companion_container_labels_client_api_traefik_hostname: ''


+ 5
- 0
roles/custom/matrix-synapse-reverse-proxy-companion/tasks/validate_config.yml Просмотреть файл

@@ -7,7 +7,12 @@
when: "item.when | bool and vars[item.name] == ''"
with_items:
- {'name': 'matrix_synapse_reverse_proxy_companion_container_network', when: true}

- {'name': 'matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_hostname', when: "{{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_enabled }}"}
- {'name': 'matrix_synapse_reverse_proxy_companion_container_labels_client_root_redirection_url', when: "{{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_redirection_enabled }}"}

- {'name': 'matrix_synapse_reverse_proxy_companion_container_labels_client_api_traefik_hostname', when: "{{ matrix_synapse_reverse_proxy_companion_container_labels_client_api_enabled }}"}

- {'name': 'matrix_synapse_reverse_proxy_companion_container_labels_federation_api_traefik_hostname', when: "{{ matrix_synapse_reverse_proxy_companion_container_labels_federation_api_enabled }}"}
- {'name': 'matrix_synapse_reverse_proxy_companion_container_labels_federation_api_traefik_entrypoints', when: "{{ matrix_synapse_reverse_proxy_companion_container_labels_federation_api_enabled }}"}


+ 38
- 0
roles/custom/matrix-synapse-reverse-proxy-companion/templates/labels.j2 Просмотреть файл

@@ -9,6 +9,44 @@ traefik.http.services.matrix-synapse-reverse-proxy-companion-client-api.loadbala
traefik.http.services.matrix-synapse-reverse-proxy-companion-federation-api.loadbalancer.server.port=8048


{#
Root path (/)
#}
{% if matrix_synapse_reverse_proxy_companion_container_labels_client_root_enabled %}

{% set client_root_middlewares = [] %}

{% if matrix_synapse_reverse_proxy_companion_container_labels_client_root_redirection_enabled %}
{% set client_root_middlewares = client_root_middlewares + ['matrix-synapse-reverse-proxy-companion-client-root-redirect'] %}
traefik.http.middlewares.matrix-synapse-reverse-proxy-companion-client-root-redirect.redirectregex.regex=(.*)
traefik.http.middlewares.matrix-synapse-reverse-proxy-companion-client-root-redirect.redirectregex.replacement={{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_redirection_url }}
{% else %}
{% set client_root_middlewares = client_root_middlewares + ['matrix-synapse-reverse-proxy-companion-client-root-replacepath'] %}
traefik.http.middlewares.matrix-synapse-reverse-proxy-companion-client-root-replacepath.replacepath.path=/_matrix/static/
{% endif %}

traefik.http.routers.matrix-synapse-reverse-proxy-companion-client-root.rule={{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_rule }}

traefik.http.routers.matrix-synapse-reverse-proxy-companion-client-root.middlewares={{ client_root_middlewares | join(',') }}

{% if matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_priority | int > 0 %}
traefik.http.routers.matrix-synapse-reverse-proxy-companion-client-root.priority={{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_priority }}
{% endif %}

traefik.http.routers.matrix-synapse-reverse-proxy-companion-client-root.service=matrix-synapse-reverse-proxy-companion-client-api
traefik.http.routers.matrix-synapse-reverse-proxy-companion-client-root.entrypoints={{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_entrypoints }}
traefik.http.routers.matrix-synapse-reverse-proxy-companion-client-root.tls={{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_tls | to_json }}

{% if matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_tls %}
traefik.http.routers.matrix-synapse-reverse-proxy-companion-client-root.tls.certResolver={{ matrix_synapse_reverse_proxy_companion_container_labels_client_root_traefik_tls_certResolver }}
{% endif %}

{% endif %}
{#
/Root path (/)
#}


{#
Client-API
#}


Загрузка…
Отмена
Сохранить