| @@ -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 }}" | |||
| @@ -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: '' | |||
| @@ -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 }}"} | |||
| @@ -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 | |||
| #} | |||