Matrix Docker Ansible eploy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

222 lines
10 KiB

  1. {% if matrix_synapse_container_labels_traefik_enabled %}
  2. traefik.enable=true
  3. {% if matrix_synapse_container_labels_traefik_docker_network %}
  4. traefik.docker.network={{ matrix_synapse_container_labels_traefik_docker_network }}
  5. {% endif %}
  6. traefik.http.services.matrix-synapse-client-api.loadbalancer.server.port={{ matrix_synapse_container_client_api_port }}
  7. traefik.http.services.matrix-synapse-federation-api.loadbalancer.server.port={{ matrix_synapse_container_federation_api_plain_port }}
  8. traefik.http.services.matrix-synapse-metrics.loadbalancer.server.port={{ matrix_synapse_metrics_port }}
  9. {#
  10. Root path (/)
  11. #}
  12. {% if matrix_synapse_container_labels_client_root_enabled %}
  13. {% set client_root_middlewares = [] %}
  14. {% if matrix_synapse_container_labels_client_root_redirection_enabled %}
  15. {% set client_root_middlewares = client_root_middlewares + ['matrix-synapse-client-root-redirect'] %}
  16. traefik.http.middlewares.matrix-synapse-client-root-redirect.redirectregex.regex=(.*)
  17. traefik.http.middlewares.matrix-synapse-client-root-redirect.redirectregex.replacement={{ matrix_synapse_container_labels_client_root_redirection_url }}
  18. {% else %}
  19. {% set client_root_middlewares = client_root_middlewares + ['matrix-synapse-client-root-replacepath'] %}
  20. traefik.http.middlewares.matrix-synapse-client-root-replacepath.replacepath.path=/_matrix/static/
  21. {% endif %}
  22. traefik.http.routers.matrix-synapse-client-root.rule={{ matrix_synapse_container_labels_client_root_traefik_rule }}
  23. traefik.http.routers.matrix-synapse-client-root.middlewares={{ client_root_middlewares | join(',') }}
  24. {% if matrix_synapse_container_labels_client_root_traefik_priority | int > 0 %}
  25. traefik.http.routers.matrix-synapse-client-root.priority={{ matrix_synapse_container_labels_client_root_traefik_priority }}
  26. {% endif %}
  27. traefik.http.routers.matrix-synapse-client-root.service=matrix-synapse-client-api
  28. traefik.http.routers.matrix-synapse-client-root.entrypoints={{ matrix_synapse_container_labels_client_root_traefik_entrypoints }}
  29. traefik.http.routers.matrix-synapse-client-root.tls={{ matrix_synapse_container_labels_client_root_traefik_tls | to_json }}
  30. {% if matrix_synapse_container_labels_client_root_traefik_tls %}
  31. traefik.http.routers.matrix-synapse-client-root.tls.certResolver={{ matrix_synapse_container_labels_client_root_traefik_tls_certResolver }}
  32. {% endif %}
  33. {% endif %}
  34. {#
  35. /Root path (/)
  36. #}
  37. {#
  38. Client-API (/_matrix)
  39. #}
  40. {% if matrix_synapse_container_labels_client_api_enabled %}
  41. traefik.http.routers.matrix-synapse-client-api.rule={{ matrix_synapse_container_labels_client_api_traefik_rule }}
  42. {% if matrix_synapse_container_labels_client_api_traefik_priority | int > 0 %}
  43. traefik.http.routers.matrix-synapse-client-api.priority={{ matrix_synapse_container_labels_client_api_traefik_priority }}
  44. {% endif %}
  45. traefik.http.routers.matrix-synapse-client-api.service=matrix-synapse-client-api
  46. traefik.http.routers.matrix-synapse-client-api.entrypoints={{ matrix_synapse_container_labels_client_api_traefik_entrypoints }}
  47. traefik.http.routers.matrix-synapse-client-api.tls={{ matrix_synapse_container_labels_client_api_traefik_tls | to_json }}
  48. {% if matrix_synapse_container_labels_client_api_traefik_tls %}
  49. traefik.http.routers.matrix-synapse-client-api.tls.certResolver={{ matrix_synapse_container_labels_client_api_traefik_tls_certResolver }}
  50. {% endif %}
  51. {% endif %}
  52. {#
  53. /Client-API (/_matrix)
  54. #}
  55. {#
  56. Synapse Admin API (/_synapse/client)
  57. #}
  58. {% if matrix_synapse_container_labels_client_synapse_client_api_enabled %}
  59. traefik.http.routers.matrix-synapse-client-synapse-client-api.rule={{ matrix_synapse_container_labels_client_synapse_client_api_traefik_rule }}
  60. {% if matrix_synapse_container_labels_client_synapse_client_api_traefik_priority | int > 0 %}
  61. traefik.http.routers.matrix-synapse-client-synapse-client-api.priority={{ matrix_synapse_container_labels_client_synapse_client_api_traefik_priority }}
  62. {% endif %}
  63. traefik.http.routers.matrix-synapse-client-synapse-client-api.service=matrix-synapse-client-api
  64. traefik.http.routers.matrix-synapse-client-synapse-client-api.entrypoints={{ matrix_synapse_container_labels_client_synapse_client_api_traefik_entrypoints }}
  65. traefik.http.routers.matrix-synapse-client-synapse-client-api.tls={{ matrix_synapse_container_labels_client_synapse_client_api_traefik_tls | to_json }}
  66. {% if matrix_synapse_container_labels_client_synapse_client_api_traefik_tls %}
  67. traefik.http.routers.matrix-synapse-client-synapse-client-api.tls.certResolver={{ matrix_synapse_container_labels_client_synapse_client_api_traefik_tls_certResolver }}
  68. {% endif %}
  69. {% endif %}
  70. {#
  71. /Synapse Admin API (/_synapse/client)
  72. #}
  73. {#
  74. Synapse OIDC API (/_synapse/oidc)
  75. #}
  76. {% if matrix_synapse_container_labels_client_synapse_oidc_api_enabled %}
  77. traefik.http.routers.matrix-synapse-client-synapse-oidc-api.rule={{ matrix_synapse_container_labels_client_synapse_oidc_api_traefik_rule }}
  78. {% if matrix_synapse_container_labels_client_synapse_oidc_api_traefik_priority | int > 0 %}
  79. traefik.http.routers.matrix-synapse-client-synapse-oidc-api.priority={{ matrix_synapse_container_labels_client_synapse_oidc_api_traefik_priority }}
  80. {% endif %}
  81. traefik.http.routers.matrix-synapse-client-synapse-oidc-api.service=matrix-synapse-client-api
  82. traefik.http.routers.matrix-synapse-client-synapse-oidc-api.entrypoints={{ matrix_synapse_container_labels_client_synapse_oidc_api_traefik_entrypoints }}
  83. traefik.http.routers.matrix-synapse-client-synapse-oidc-api.tls={{ matrix_synapse_container_labels_client_synapse_oidc_api_traefik_tls | to_json }}
  84. {% if matrix_synapse_container_labels_client_synapse_oidc_api_traefik_tls %}
  85. traefik.http.routers.matrix-synapse-client-synapse-oidc-api.tls.certResolver={{ matrix_synapse_container_labels_client_synapse_oidc_api_traefik_tls_certResolver }}
  86. {% endif %}
  87. {% endif %}
  88. {#
  89. /Synapse OIDC API (/_synapse/oidc)
  90. #}
  91. {#
  92. Synapse Admin API (/_synapse/admin)
  93. #}
  94. {% if matrix_synapse_container_labels_client_synapse_admin_api_enabled %}
  95. traefik.http.routers.matrix-synapse-client-synapse-admin-api.rule={{ matrix_synapse_container_labels_client_synapse_admin_api_traefik_rule }}
  96. {% if matrix_synapse_container_labels_client_synapse_admin_api_traefik_priority | int > 0 %}
  97. traefik.http.routers.matrix-synapse-client-synapse-admin-api.priority={{ matrix_synapse_container_labels_client_synapse_admin_api_traefik_priority }}
  98. {% endif %}
  99. traefik.http.routers.matrix-synapse-client-synapse-admin-api.service=matrix-synapse-client-api
  100. traefik.http.routers.matrix-synapse-client-synapse-admin-api.entrypoints={{ matrix_synapse_container_labels_client_synapse_admin_api_traefik_entrypoints }}
  101. traefik.http.routers.matrix-synapse-client-synapse-admin-api.tls={{ matrix_synapse_container_labels_client_synapse_admin_api_traefik_tls | to_json }}
  102. {% if matrix_synapse_container_labels_client_synapse_admin_api_traefik_tls %}
  103. traefik.http.routers.matrix-synapse-client-synapse-admin-api.tls.certResolver={{ matrix_synapse_container_labels_client_synapse_admin_api_traefik_tls_certResolver }}
  104. {% endif %}
  105. {% endif %}
  106. {#
  107. /Synapse Admin API (/_synapse/admin)
  108. #}
  109. {#
  110. Federation-API (/_matrix)
  111. #}
  112. {% if matrix_synapse_container_labels_federation_api_enabled %}
  113. traefik.http.routers.matrix-synapse-federation-api.rule={{ matrix_synapse_container_labels_federation_api_traefik_rule }}
  114. {% if matrix_synapse_container_labels_federation_api_traefik_priority | int > 0 %}
  115. traefik.http.routers.matrix-synapse-federation-api.priority={{ matrix_synapse_container_labels_federation_api_traefik_priority }}
  116. {% endif %}
  117. traefik.http.routers.matrix-synapse-federation-api.service=matrix-synapse-federation-api
  118. traefik.http.routers.matrix-synapse-federation-api.entrypoints={{ matrix_synapse_container_labels_federation_api_traefik_entrypoints }}
  119. traefik.http.routers.matrix-synapse-federation-api.tls={{ matrix_synapse_container_labels_federation_api_traefik_tls | to_json }}
  120. {% if matrix_synapse_container_labels_federation_api_traefik_tls %}
  121. traefik.http.routers.matrix-synapse-federation-api.tls.certResolver={{ matrix_synapse_container_labels_federation_api_traefik_tls_certResolver }}
  122. {% endif %}
  123. {% endif %}
  124. {#
  125. /Federation-API (/_matrix)
  126. #}
  127. {#
  128. Metrics (e.g. /metrics/synapse/main-process)
  129. #}
  130. {% if matrix_synapse_container_labels_metrics_enabled %}
  131. {% set metrics_middlewares = [] %}
  132. {% if matrix_synapse_container_labels_metrics_middleware_basic_auth_enabled %}
  133. {% set metrics_middlewares = metrics_middlewares + ['matrix-synapse-metrics-basic-auth'] %}
  134. traefik.http.middlewares.matrix-synapse-metrics-basic-auth.basicauth.users={{ matrix_synapse_container_labels_metrics_middleware_basic_auth_users }}
  135. {% endif %}
  136. {% set metrics_middlewares = metrics_middlewares + ['matrix-synapse-metrics-replacepath'] %}
  137. traefik.http.middlewares.matrix-synapse-metrics-replacepath.replacepath.path=/_synapse/metrics
  138. traefik.http.routers.matrix-synapse-metrics.rule={{ matrix_synapse_container_labels_metrics_traefik_rule }}
  139. {% if metrics_middlewares | length > 0 %}
  140. traefik.http.routers.matrix-synapse-metrics.middlewares={{ metrics_middlewares | join(',') }}
  141. {% endif %}
  142. {% if matrix_synapse_container_labels_metrics_traefik_priority | int > 0 %}
  143. traefik.http.routers.matrix-synapse-metrics.priority={{ matrix_synapse_container_labels_metrics_traefik_priority }}
  144. {% endif %}
  145. traefik.http.routers.matrix-synapse-metrics.service=matrix-synapse-metrics
  146. traefik.http.routers.matrix-synapse-metrics.entrypoints={{ matrix_synapse_container_labels_metrics_traefik_entrypoints }}
  147. traefik.http.routers.matrix-synapse-metrics.tls={{ matrix_synapse_container_labels_metrics_traefik_tls | to_json }}
  148. {% if matrix_synapse_container_labels_metrics_traefik_tls %}
  149. traefik.http.routers.matrix-synapse-metrics.tls.certResolver={{ matrix_synapse_container_labels_metrics_traefik_tls_certResolver }}
  150. {% endif %}
  151. {% if matrix_synapse_container_labels_metrics_middleware_basic_auth_enabled %}
  152. traefik.http.routers.matrix-synapse-metrics.middlewares=matrix-synapse-metrics-basic-auth
  153. traefik.http.middlewares.matrix-synapse-metrics-basic-auth.basicauth.users={{ matrix_synapse_container_labels_metrics_middleware_basic_auth_users }}
  154. {% endif %}
  155. {% endif %}
  156. {#
  157. /Metrics (e.g. /metrics/synapse/main-process)
  158. #}
  159. {% endif %}
  160. {{ matrix_synapse_container_labels_additional_labels }}