Add Traefik labels for handling authenticated media (MSC3916) in matrix-media-repo

Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3409
- https://github.com/t2bot/matrix-media-repo/releases/tag/v1.3.5
- https://github.com/matrix-org/matrix-spec-proposals/pull/3916

Support for authenticated media routes is enabled by default, but
variables are in place to disable it if necessary.

This change has not been tested.
This commit is contained in:
Slavi Pantaleev
2024-07-11 07:03:14 +03:00
parent 663e545cda
commit de91fe933d
4 changed files with 148 additions and 9 deletions

View File

@ -49,6 +49,39 @@ traefik.http.routers.matrix-media-repo-public-media.tls.certResolver={{ matrix_m
############################################################
{% if matrix_media_repo_container_labels_traefik_client_matrix_client_media_enabled %}
##########################################################################
# #
# Public Client Media (/_matrix/client/VERSION/media) - MSC3916 #
# #
##########################################################################
traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.rule={{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_rule }}
{% if matrix_media_repo_container_labels_traefik_client_matrix_client_media_priority | int > 0 %}
traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.priority={{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_priority }}
{% endif %}
{% if middlewares | length > 0 %}
traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.middlewares={{ middlewares | join(',') }}
{% endif %}
traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.service=matrix-media-repo
traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.entrypoints={{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_entrypoints }}
traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.tls={{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_tls | to_json }}
{% if matrix_media_repo_container_labels_traefik_client_matrix_client_media_tls %}
traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.tls.certResolver={{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_tls_certResolver }}
{% endif %}
##########################################################################
# #
# /Public Client Media (/_matrix/client/VERSION/media) - MSC3916 #
# #
##########################################################################
{% endif %}
{% if matrix_media_repo_container_labels_traefik_internal_media_enabled %}
############################################################
# #
@ -77,6 +110,34 @@ traefik.http.routers.matrix-media-repo-internal-media.entrypoints={{ matrix_medi
{% endif %}
{% if matrix_media_repo_container_labels_traefik_internal_matrix_client_media_enabled %}
##########################################################################
# #
# Internal Client Media (/_matrix/client/VERSION/media) - MSC3916 #
# #
##########################################################################
traefik.http.routers.matrix-media-repo-internal-matrix-client-media.rule={{ matrix_media_repo_container_labels_traefik_internal_matrix_client_media_rule }}
{% if matrix_media_repo_container_labels_traefik_internal_matrix_client_media_priority | int > 0 %}
traefik.http.routers.matrix-media-repo-internal-matrix-client-media.priority={{ matrix_media_repo_container_labels_traefik_internal_matrix_client_media_priority }}
{% endif %}
{% if middlewares | length > 0 %}
traefik.http.routers.matrix-media-repo-internal-matrix-client-media.middlewares={{ middlewares | join(',') }}
{% endif %}
traefik.http.routers.matrix-media-repo-internal-matrix-client-media.service=matrix-media-repo
traefik.http.routers.matrix-media-repo-internal-matrix-client-media.entrypoints={{ matrix_media_repo_container_labels_traefik_internal_matrix_client_media_entrypoints }}
##########################################################################
# #
# /Internal Client Media (/_matrix/client/VERSION/media) - MSC3916 #
# #
##########################################################################
{% endif %}
{% if matrix_media_repo_access_tokens_max_cache_time_seconds > 0 %}
############################################################
# #
@ -210,6 +271,39 @@ traefik.http.routers.matrix-media-repo-public-media-federation.tls.certResolver=
############################################################
{% if matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_enabled %}
##########################################################################
# #
# Public Federation Media (/_matrix/federation/VERSION/media) - MSC3916 #
# #
##########################################################################
traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.rule={{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_rule }}
{% if matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_priority | int > 0 %}
traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.priority={{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_priority }}
{% endif %}
{% if middlewares | length > 0 %}
traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.middlewares={{ middlewares | join(',') }}
{% endif %}
traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.service=matrix-media-repo
traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.entrypoints={{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_entrypoints }}
traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.tls={{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_tls | to_json }}
{% if matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_tls %}
traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.tls.certResolver={{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_tls_certResolver }}
{% endif %}
##########################################################################
# #
# /Public Federation Media (/_matrix/federation/VERSION/media) - MSC3916 #
# #
##########################################################################
{% endif %}
{% if matrix_media_repo_access_tokens_max_cache_time_seconds > 0 %}
############################################################
# #