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.
 
 

334 lines
18 KiB

  1. {#
  2. SPDX-FileCopyrightText: 2024 Slavi Pantaleev
  3. SPDX-License-Identifier: AGPL-3.0-or-later
  4. #}
  5. {% if matrix_synapse_container_labels_traefik_enabled %}
  6. traefik.enable=true
  7. {% if matrix_synapse_container_labels_traefik_docker_network %}
  8. traefik.docker.network={{ matrix_synapse_container_labels_traefik_docker_network }}
  9. {% endif %}
  10. traefik.http.services.matrix-synapse-client-api.loadbalancer.server.port={{ matrix_synapse_container_client_api_port }}
  11. traefik.http.services.matrix-synapse-federation-api.loadbalancer.server.port={{ matrix_synapse_container_federation_api_plain_port }}
  12. traefik.http.services.matrix-synapse-metrics.loadbalancer.server.port={{ matrix_synapse_metrics_port }}
  13. {% if matrix_synapse_container_labels_public_client_root_enabled %}
  14. ############################################################
  15. # #
  16. # Public Root path (/) #
  17. # #
  18. ############################################################
  19. {% set client_root_middlewares = [] %}
  20. {% if matrix_synapse_container_labels_traefik_compression_middleware_enabled %}
  21. {% set client_root_middlewares = client_root_middlewares + [matrix_synapse_container_labels_traefik_compression_middleware_name] %}
  22. {% endif %}
  23. {% if matrix_synapse_container_labels_public_client_root_redirection_enabled %}
  24. {% set client_root_middlewares = client_root_middlewares + ['matrix-synapse-public-client-root-redirect'] %}
  25. traefik.http.middlewares.matrix-synapse-public-client-root-redirect.redirectregex.regex=(.*)
  26. traefik.http.middlewares.matrix-synapse-public-client-root-redirect.redirectregex.replacement={{ matrix_synapse_container_labels_public_client_root_redirection_url }}
  27. {% else %}
  28. {% set client_root_middlewares = client_root_middlewares + ['matrix-synapse-public-client-root-replacepath'] %}
  29. traefik.http.middlewares.matrix-synapse-public-client-root-replacepath.replacepath.path=/_matrix/static/
  30. {% endif %}
  31. traefik.http.routers.matrix-synapse-public-client-root.rule={{ matrix_synapse_container_labels_public_client_root_traefik_rule }}
  32. traefik.http.routers.matrix-synapse-public-client-root.middlewares={{ client_root_middlewares | join(',') }}
  33. {% if matrix_synapse_container_labels_public_client_root_traefik_priority | int > 0 %}
  34. traefik.http.routers.matrix-synapse-public-client-root.priority={{ matrix_synapse_container_labels_public_client_root_traefik_priority }}
  35. {% endif %}
  36. traefik.http.routers.matrix-synapse-public-client-root.service=matrix-synapse-client-api
  37. traefik.http.routers.matrix-synapse-public-client-root.entrypoints={{ matrix_synapse_container_labels_public_client_root_traefik_entrypoints }}
  38. traefik.http.routers.matrix-synapse-public-client-root.tls={{ matrix_synapse_container_labels_public_client_root_traefik_tls | to_json }}
  39. {% if matrix_synapse_container_labels_public_client_root_traefik_tls %}
  40. traefik.http.routers.matrix-synapse-public-client-root.tls.certResolver={{ matrix_synapse_container_labels_public_client_root_traefik_tls_certResolver }}
  41. {% endif %}
  42. ############################################################
  43. # #
  44. # /Public Root path (/) #
  45. # #
  46. ############################################################
  47. {% endif %}
  48. {% if matrix_synapse_container_labels_matrix_related_labels_enabled %}
  49. ############################################################
  50. # #
  51. # MATRIX-RELATED (/_matrix, /_synapse/..) #
  52. # #
  53. ############################################################
  54. {% if matrix_synapse_container_labels_public_client_api_enabled %}
  55. ############################################################
  56. # #
  57. # Public Client-API (/_matrix) #
  58. # #
  59. ############################################################
  60. {% set client_api_middlewares = [] %}
  61. {% if matrix_synapse_container_labels_traefik_compression_middleware_enabled %}
  62. {% set client_api_middlewares = client_api_middlewares + [matrix_synapse_container_labels_traefik_compression_middleware_name] %}
  63. {% endif %}
  64. traefik.http.routers.matrix-synapse-public-client-api.rule={{ matrix_synapse_container_labels_public_client_api_traefik_rule }}
  65. {% if client_api_middlewares | length > 0 %}
  66. traefik.http.routers.matrix-synapse-public-client-api.middlewares={{ client_api_middlewares | join(',') }}
  67. {% endif %}
  68. {% if matrix_synapse_container_labels_public_client_api_traefik_priority | int > 0 %}
  69. traefik.http.routers.matrix-synapse-public-client-api.priority={{ matrix_synapse_container_labels_public_client_api_traefik_priority }}
  70. {% endif %}
  71. traefik.http.routers.matrix-synapse-public-client-api.service=matrix-synapse-client-api
  72. traefik.http.routers.matrix-synapse-public-client-api.entrypoints={{ matrix_synapse_container_labels_public_client_api_traefik_entrypoints }}
  73. traefik.http.routers.matrix-synapse-public-client-api.tls={{ matrix_synapse_container_labels_public_client_api_traefik_tls | to_json }}
  74. {% if matrix_synapse_container_labels_public_client_api_traefik_tls %}
  75. traefik.http.routers.matrix-synapse-public-client-api.tls.certResolver={{ matrix_synapse_container_labels_public_client_api_traefik_tls_certResolver }}
  76. {% endif %}
  77. ############################################################
  78. # #
  79. # /Public Client-API (/_matrix) #
  80. # #
  81. ############################################################
  82. {% endif %}
  83. {% if matrix_synapse_container_labels_internal_client_api_enabled %}
  84. ############################################################
  85. # #
  86. # Internal Client-API (/_matrix) #
  87. # #
  88. ############################################################
  89. traefik.http.routers.matrix-synapse-internal-client-api.rule={{ matrix_synapse_container_labels_internal_client_api_traefik_rule }}
  90. {% if matrix_synapse_container_labels_internal_client_api_traefik_priority | int > 0 %}
  91. traefik.http.routers.matrix-synapse-internal-client-api.priority={{ matrix_synapse_container_labels_internal_client_api_traefik_priority }}
  92. {% endif %}
  93. traefik.http.routers.matrix-synapse-internal-client-api.service=matrix-synapse-client-api
  94. traefik.http.routers.matrix-synapse-internal-client-api.entrypoints={{ matrix_synapse_container_labels_internal_client_api_traefik_entrypoints }}
  95. ############################################################
  96. # #
  97. # /Internal Client-API (/_matrix) #
  98. # #
  99. ############################################################
  100. {% endif %}
  101. {% if matrix_synapse_container_labels_public_client_synapse_client_api_enabled %}
  102. ############################################################
  103. # #
  104. # Public Synapse Client API (/_synapse/client) #
  105. # #
  106. ############################################################
  107. {% set synapse_client_api_middlewares = [] %}
  108. {% if matrix_synapse_container_labels_traefik_compression_middleware_enabled %}
  109. {% set synapse_client_api_middlewares = synapse_client_api_middlewares + [matrix_synapse_container_labels_traefik_compression_middleware_name] %}
  110. {% endif %}
  111. traefik.http.routers.matrix-synapse-public-client-synapse-client-api.rule={{ matrix_synapse_container_labels_public_client_synapse_client_api_traefik_rule }}
  112. {% if synapse_client_api_middlewares | length > 0 %}
  113. traefik.http.routers.matrix-synapse-public-client-synapse-client-api.middlewares={{ synapse_client_api_middlewares | join(',') }}
  114. {% endif %}
  115. {% if matrix_synapse_container_labels_public_client_synapse_client_api_traefik_priority | int > 0 %}
  116. traefik.http.routers.matrix-synapse-public-client-synapse-client-api.priority={{ matrix_synapse_container_labels_public_client_synapse_client_api_traefik_priority }}
  117. {% endif %}
  118. traefik.http.routers.matrix-synapse-public-client-synapse-client-api.service=matrix-synapse-client-api
  119. traefik.http.routers.matrix-synapse-public-client-synapse-client-api.entrypoints={{ matrix_synapse_container_labels_public_client_synapse_client_api_traefik_entrypoints }}
  120. traefik.http.routers.matrix-synapse-public-client-synapse-client-api.tls={{ matrix_synapse_container_labels_public_client_synapse_client_api_traefik_tls | to_json }}
  121. {% if matrix_synapse_container_labels_public_client_synapse_client_api_traefik_tls %}
  122. traefik.http.routers.matrix-synapse-public-client-synapse-client-api.tls.certResolver={{ matrix_synapse_container_labels_public_client_synapse_client_api_traefik_tls_certResolver }}
  123. {% endif %}
  124. ############################################################
  125. # #
  126. # /Public Synapse Client API (/_synapse/client) #
  127. # #
  128. ############################################################
  129. {% endif %}
  130. {% if matrix_synapse_container_labels_public_client_synapse_admin_api_enabled %}
  131. ############################################################
  132. # #
  133. # Public Synapse Admin API (/_synapse/admin) #
  134. # #
  135. ############################################################
  136. {% set synapse_admin_api_middlewares = [] %}
  137. {% if matrix_synapse_container_labels_traefik_compression_middleware_enabled %}
  138. {% set synapse_admin_api_middlewares = synapse_admin_api_middlewares + [matrix_synapse_container_labels_traefik_compression_middleware_name] %}
  139. {% endif %}
  140. traefik.http.routers.matrix-synapse-public-client-synapse-admin-api.rule={{ matrix_synapse_container_labels_public_client_synapse_admin_api_traefik_rule }}
  141. {% if synapse_admin_api_middlewares | length > 0 %}
  142. traefik.http.routers.matrix-synapse-public-client-synapse-admin-api.middlewares={{ synapse_admin_api_middlewares | join(',') }}
  143. {% endif %}
  144. {% if matrix_synapse_container_labels_public_client_synapse_admin_api_traefik_priority | int > 0 %}
  145. traefik.http.routers.matrix-synapse-public-client-synapse-admin-api.priority={{ matrix_synapse_container_labels_public_client_synapse_admin_api_traefik_priority }}
  146. {% endif %}
  147. traefik.http.routers.matrix-synapse-public-client-synapse-admin-api.service=matrix-synapse-client-api
  148. traefik.http.routers.matrix-synapse-public-client-synapse-admin-api.entrypoints={{ matrix_synapse_container_labels_public_client_synapse_admin_api_traefik_entrypoints }}
  149. traefik.http.routers.matrix-synapse-public-client-synapse-admin-api.tls={{ matrix_synapse_container_labels_public_client_synapse_admin_api_traefik_tls | to_json }}
  150. {% if matrix_synapse_container_labels_public_client_synapse_admin_api_traefik_tls %}
  151. traefik.http.routers.matrix-synapse-public-client-synapse-admin-api.tls.certResolver={{ matrix_synapse_container_labels_public_client_synapse_admin_api_traefik_tls_certResolver }}
  152. {% endif %}
  153. ############################################################
  154. # #
  155. # /Public Synapse Admin API (/_synapse/admin) #
  156. # #
  157. ############################################################
  158. {% endif %}
  159. {% if matrix_synapse_container_labels_internal_client_synapse_admin_api_enabled %}
  160. ############################################################
  161. # #
  162. # Internal Synapse Admin API (/_synapse/admin) #
  163. # #
  164. ############################################################
  165. traefik.http.routers.matrix-synapse-internal-client-synapse-admin-api.rule={{ matrix_synapse_container_labels_internal_client_synapse_admin_api_traefik_rule }}
  166. {% if matrix_synapse_container_labels_internal_client_synapse_admin_api_traefik_priority | int > 0 %}
  167. traefik.http.routers.matrix-synapse-internal-client-synapse-admin-api.priority={{ matrix_synapse_container_labels_internal_client_synapse_admin_api_traefik_priority }}
  168. {% endif %}
  169. traefik.http.routers.matrix-synapse-internal-client-synapse-admin-api.service=matrix-synapse-client-api
  170. traefik.http.routers.matrix-synapse-internal-client-synapse-admin-api.entrypoints={{ matrix_synapse_container_labels_internal_client_synapse_admin_api_traefik_entrypoints }}
  171. ############################################################
  172. # #
  173. # /Internal Synapse Admin API (/_synapse/admin) #
  174. # #
  175. ############################################################
  176. {% endif %}
  177. {% if matrix_synapse_container_labels_public_federation_api_enabled %}
  178. ############################################################
  179. # #
  180. # Public Federation-API (/_matrix) #
  181. # #
  182. ############################################################
  183. {% set federation_api_middlewares = [] %}
  184. {% if matrix_synapse_container_labels_traefik_compression_middleware_enabled %}
  185. {% set federation_api_middlewares = federation_api_middlewares + [matrix_synapse_container_labels_traefik_compression_middleware_name] %}
  186. {% endif %}
  187. traefik.http.routers.matrix-synapse-public-federation-api.rule={{ matrix_synapse_container_labels_public_federation_api_traefik_rule }}
  188. {% if federation_api_middlewares | length > 0 %}
  189. traefik.http.routers.matrix-synapse-public-federation-api.middlewares={{ federation_api_middlewares | join(',') }}
  190. {% endif %}
  191. {% if matrix_synapse_container_labels_public_federation_api_traefik_priority | int > 0 %}
  192. traefik.http.routers.matrix-synapse-public-federation-api.priority={{ matrix_synapse_container_labels_public_federation_api_traefik_priority }}
  193. {% endif %}
  194. traefik.http.routers.matrix-synapse-public-federation-api.service=matrix-synapse-federation-api
  195. traefik.http.routers.matrix-synapse-public-federation-api.entrypoints={{ matrix_synapse_container_labels_public_federation_api_traefik_entrypoints }}
  196. traefik.http.routers.matrix-synapse-public-federation-api.tls={{ matrix_synapse_container_labels_public_federation_api_traefik_tls | to_json }}
  197. {% if matrix_synapse_container_labels_public_federation_api_traefik_tls %}
  198. traefik.http.routers.matrix-synapse-public-federation-api.tls.certResolver={{ matrix_synapse_container_labels_public_federation_api_traefik_tls_certResolver }}
  199. {% endif %}
  200. ############################################################
  201. # #
  202. # /Public Federation-API (/_matrix) #
  203. # #
  204. ############################################################
  205. {% endif %}
  206. ############################################################
  207. # #
  208. # /MATRIX-RELATED (/_matrix, /_synapse/..) #
  209. # #
  210. ############################################################
  211. {% endif %} {# end of matrix_synapse_container_labels_matrix_related_labels_enabled if-check #}
  212. {% if matrix_synapse_container_labels_public_metrics_enabled %}
  213. ############################################################
  214. # #
  215. # Public Metrics (e.g. /metrics/synapse/main-process) #
  216. # #
  217. ############################################################
  218. {% set metrics_middlewares = [] %}
  219. {% if matrix_synapse_container_labels_traefik_compression_middleware_enabled %}
  220. {% set metrics_middlewares = metrics_middlewares + [matrix_synapse_container_labels_traefik_compression_middleware_name] %}
  221. {% endif %}
  222. {% if matrix_synapse_container_labels_public_metrics_middleware_basic_auth_enabled %}
  223. {% set metrics_middlewares = metrics_middlewares + ['matrix-synapse-metrics-basic-auth'] %}
  224. traefik.http.middlewares.matrix-synapse-metrics-basic-auth.basicauth.users={{ matrix_synapse_container_labels_public_metrics_middleware_basic_auth_users }}
  225. {% endif %}
  226. {% set metrics_middlewares = metrics_middlewares + ['matrix-synapse-metrics-replacepath'] %}
  227. traefik.http.middlewares.matrix-synapse-metrics-replacepath.replacepath.path=/_synapse/metrics
  228. traefik.http.routers.matrix-synapse-metrics.rule={{ matrix_synapse_container_labels_public_metrics_traefik_rule }}
  229. {% if metrics_middlewares | length > 0 %}
  230. traefik.http.routers.matrix-synapse-metrics.middlewares={{ metrics_middlewares | join(',') }}
  231. {% endif %}
  232. {% if matrix_synapse_container_labels_public_metrics_traefik_priority | int > 0 %}
  233. traefik.http.routers.matrix-synapse-metrics.priority={{ matrix_synapse_container_labels_public_metrics_traefik_priority }}
  234. {% endif %}
  235. traefik.http.routers.matrix-synapse-metrics.service=matrix-synapse-metrics
  236. traefik.http.routers.matrix-synapse-metrics.entrypoints={{ matrix_synapse_container_labels_public_metrics_traefik_entrypoints }}
  237. traefik.http.routers.matrix-synapse-metrics.tls={{ matrix_synapse_container_labels_public_metrics_traefik_tls | to_json }}
  238. {% if matrix_synapse_container_labels_public_metrics_traefik_tls %}
  239. traefik.http.routers.matrix-synapse-metrics.tls.certResolver={{ matrix_synapse_container_labels_public_metrics_traefik_tls_certResolver }}
  240. {% endif %}
  241. ############################################################
  242. # #
  243. # /Public Metrics (e.g. /metrics/synapse/main-process) #
  244. # #
  245. ############################################################
  246. {% endif %}
  247. {% endif %}
  248. {{ matrix_synapse_container_labels_additional_labels }}