From 2efa58b01c469ba0bdf0f719daf0814cff16c2f7 Mon Sep 17 00:00:00 2001 From: Thom Wiggers Date: Thu, 25 Sep 2025 10:41:48 +0200 Subject: [PATCH] Make traefik work --- .../defaults/main.yml | 3 ++- .../templates/labels.j2 | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/roles/custom/matrix-bridge-appservice-irc/defaults/main.yml b/roles/custom/matrix-bridge-appservice-irc/defaults/main.yml index f8662ab86..782b52bf7 100644 --- a/roles/custom/matrix-bridge-appservice-irc/defaults/main.yml +++ b/roles/custom/matrix-bridge-appservice-irc/defaults/main.yml @@ -491,7 +491,8 @@ matrix_appservice_irc_container_labels_traefik_tls_certResolver: "{{ traefik_cer # Controls whether Traefik labels for the media proxy will be applied matrix_appservice_irc_container_labels_media_proxy_enabled: true -matrix_appservice_irc_container_labels_media_proxy_traefik_rule: "Host(`{{ matrix_domain }}`) && PathPrefix(`/irc/`)" +matrix_appservice_irc_container_labels_traefik_path_prefix: "/irc" +matrix_appservice_irc_container_labels_media_proxy_traefik_rule: "Host(`{{ matrix_server_fqn_matrix }}`) && PathPrefix(`{{ matrix_appservice_irc_container_labels_traefik_path_prefix }}`)" matrix_appservice_irc_container_labels_media_proxy_traefik_priority: 2000 matrix_appservice_irc_container_labels_media_proxy_traefik_entrypoints: "{{ matrix_appservice_irc_container_labels_traefik_entrypoints }}" matrix_appservice_irc_container_labels_media_proxy_traefik_tls: "{{ matrix_appservice_irc_container_labels_media_proxy_traefik_entrypoints != 'web' }}" diff --git a/roles/custom/matrix-bridge-appservice-irc/templates/labels.j2 b/roles/custom/matrix-bridge-appservice-irc/templates/labels.j2 index c1308b8b1..2ea6557ae 100644 --- a/roles/custom/matrix-bridge-appservice-irc/templates/labels.j2 +++ b/roles/custom/matrix-bridge-appservice-irc/templates/labels.j2 @@ -19,8 +19,22 @@ traefik.http.services.matrix-appservice-irc-media-proxy.loadbalancer.server.port # # ############################################################ +{% set middlewares = [] %} + traefik.http.routers.matrix-appservice-irc-media-proxy.rule={{ matrix_appservice_irc_container_labels_media_proxy_traefik_rule }} +{% if matrix_appservice_irc_container_labels_traefik_path_prefix != '/' %} +traefik.http.middlewares.matrix-appservice-irc-media-proxy-slashless-redirect.redirectregex.regex=({{ matrix_appservice_irc_container_labels_traefik_path_prefix | quote }})$ +traefik.http.middlewares.matrix-appservice-irc-media-proxy-slashless-redirect.redirectregex.replacement=${1}/ +{% set middlewares = middlewares + ['matrix-appservice-irc-media-proxy-slashless-redirect'] %} +{% endif %} + +{% if matrix_appservice_irc_container_labels_traefik_path_prefix != '/' %} +traefik.http.middlewares.matrix-appservice-irc-media-proxy-strip-prefix.stripprefix.prefixes={{ matrix_appservice_irc_container_labels_traefik_path_prefix }} +{% set middlewares = middlewares + ['matrix-appservice-irc-media-proxy-strip-prefix'] %} +{% endif %} + + {% if matrix_appservice_irc_container_labels_media_proxy_traefik_priority | int > 0 %} traefik.http.routers.matrix-appservice-irc-media-proxy.priority={{ matrix_appservice_irc_container_labels_media_proxy_traefik_priority }} {% endif %} @@ -28,6 +42,10 @@ traefik.http.routers.matrix-appservice-irc-media-proxy.priority={{ matrix_appser traefik.http.routers.matrix-appservice-irc-media-proxy.service=matrix-appservice-irc-media-proxy traefik.http.routers.matrix-appservice-irc-media-proxy.entrypoints={{ matrix_appservice_irc_container_labels_media_proxy_traefik_entrypoints }} +{% if middlewares | length > 0 %} +traefik.http.routers.matrix-appservice-irc-media-proxy.middlewares={{ middlewares | join(',') }} +{% endif %} + traefik.http.routers.matrix-appservice-irc-media-proxy.tls={{ matrix_appservice_irc_container_labels_media_proxy_traefik_tls | to_json }} {% if matrix_appservice_irc_container_labels_media_proxy_traefik_tls %} traefik.http.routers.matrix-appservice-irc-media-proxy.tls.certResolver={{ matrix_appservice_irc_container_labels_media_proxy_traefik_tls_certResolver }}