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.
 
 
 

425 lines
23 KiB

  1. {% if matrix_media_repo_container_labels_traefik_enabled %}
  2. traefik.enable=true
  3. {% if matrix_media_repo_container_labels_traefik_docker_network %}
  4. traefik.docker.network={{ matrix_media_repo_container_labels_traefik_docker_network }}
  5. {% endif %}
  6. traefik.http.services.matrix-media-repo.loadbalancer.server.port={{ matrix_media_repo_port }}
  7. {% set middlewares = [] %}
  8. {% if matrix_media_repo_container_labels_traefik_additional_request_headers.keys() | length > 0 %}
  9. {% for name, value in matrix_media_repo_container_labels_traefik_additional_request_headers.items() %}
  10. traefik.http.middlewares.matrix-media-repo-add-headers.headers.customrequestheaders.{{ name }}={{ value }}
  11. {% endfor %}
  12. {% set middlewares = middlewares + ['matrix-media-repo-add-headers'] %}
  13. {% endif %}
  14. # Matrix Client
  15. {% if matrix_media_repo_container_labels_traefik_media_enabled %}
  16. ############################################################
  17. # #
  18. # Public Media (/_matrix/media) #
  19. # #
  20. ############################################################
  21. traefik.http.routers.matrix-media-repo-public-media.rule={{ matrix_media_repo_container_labels_traefik_media_rule }}
  22. {% if matrix_media_repo_container_labels_traefik_media_priority | int > 0 %}
  23. traefik.http.routers.matrix-media-repo-public-media.priority={{ matrix_media_repo_container_labels_traefik_media_priority }}
  24. {% endif %}
  25. {% if middlewares | length > 0 %}
  26. traefik.http.routers.matrix-media-repo-public-media.middlewares={{ middlewares | join(',') }}
  27. {% endif %}
  28. traefik.http.routers.matrix-media-repo-public-media.service=matrix-media-repo
  29. traefik.http.routers.matrix-media-repo-public-media.entrypoints={{ matrix_media_repo_container_labels_traefik_media_entrypoints }}
  30. traefik.http.routers.matrix-media-repo-public-media.tls={{ matrix_media_repo_container_labels_traefik_media_tls | to_json }}
  31. {% if matrix_media_repo_container_labels_traefik_media_tls %}
  32. traefik.http.routers.matrix-media-repo-public-media.tls.certResolver={{ matrix_media_repo_container_labels_traefik_media_tls_certResolver }}
  33. {% endif %}
  34. ############################################################
  35. # #
  36. # /Public Media (/_matrix/media) #
  37. # #
  38. ############################################################
  39. {% endif %}
  40. {% if matrix_media_repo_container_labels_traefik_client_matrix_client_media_enabled %}
  41. ##########################################################################
  42. # #
  43. # Public Client Media (/_matrix/client/VERSION/media) - MSC3916 #
  44. # #
  45. ##########################################################################
  46. traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.rule={{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_rule }}
  47. {% if matrix_media_repo_container_labels_traefik_client_matrix_client_media_priority | int > 0 %}
  48. traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.priority={{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_priority }}
  49. {% endif %}
  50. {% if middlewares | length > 0 %}
  51. traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.middlewares={{ middlewares | join(',') }}
  52. {% endif %}
  53. traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.service=matrix-media-repo
  54. traefik.http.routers.matrix-media-repo-public-client-matrix-client-media.entrypoints={{ matrix_media_repo_container_labels_traefik_client_matrix_client_media_entrypoints }}
  55. 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 }}
  56. {% if matrix_media_repo_container_labels_traefik_client_matrix_client_media_tls %}
  57. 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 }}
  58. {% endif %}
  59. ##########################################################################
  60. # #
  61. # /Public Client Media (/_matrix/client/VERSION/media) - MSC3916 #
  62. # #
  63. ##########################################################################
  64. {% endif %}
  65. {% if matrix_media_repo_container_labels_traefik_internal_media_enabled %}
  66. ############################################################
  67. # #
  68. # Internal Media (/_matrix/media) #
  69. # #
  70. ############################################################
  71. traefik.http.routers.matrix-media-repo-internal-media.rule={{ matrix_media_repo_container_labels_traefik_internal_media_rule }}
  72. {% if matrix_media_repo_container_labels_traefik_internal_media_priority | int > 0 %}
  73. traefik.http.routers.matrix-media-repo-internal-media.priority={{ matrix_media_repo_container_labels_traefik_internal_media_priority }}
  74. {% endif %}
  75. {% if middlewares | length > 0 %}
  76. traefik.http.routers.matrix-media-repo-internal-media.middlewares={{ middlewares | join(',') }}
  77. {% endif %}
  78. traefik.http.routers.matrix-media-repo-internal-media.service=matrix-media-repo
  79. traefik.http.routers.matrix-media-repo-internal-media.entrypoints={{ matrix_media_repo_container_labels_traefik_internal_media_entrypoints }}
  80. ############################################################
  81. # #
  82. # /Internal Media (/_matrix/media) #
  83. # #
  84. ############################################################
  85. {% endif %}
  86. {% if matrix_media_repo_container_labels_traefik_internal_matrix_client_media_enabled %}
  87. ##########################################################################
  88. # #
  89. # Internal Client Media (/_matrix/client/VERSION/media) - MSC3916 #
  90. # #
  91. ##########################################################################
  92. traefik.http.routers.matrix-media-repo-internal-matrix-client-media.rule={{ matrix_media_repo_container_labels_traefik_internal_matrix_client_media_rule }}
  93. {% if matrix_media_repo_container_labels_traefik_internal_matrix_client_media_priority | int > 0 %}
  94. traefik.http.routers.matrix-media-repo-internal-matrix-client-media.priority={{ matrix_media_repo_container_labels_traefik_internal_matrix_client_media_priority }}
  95. {% endif %}
  96. {% if middlewares | length > 0 %}
  97. traefik.http.routers.matrix-media-repo-internal-matrix-client-media.middlewares={{ middlewares | join(',') }}
  98. {% endif %}
  99. traefik.http.routers.matrix-media-repo-internal-matrix-client-media.service=matrix-media-repo
  100. traefik.http.routers.matrix-media-repo-internal-matrix-client-media.entrypoints={{ matrix_media_repo_container_labels_traefik_internal_matrix_client_media_entrypoints }}
  101. ##########################################################################
  102. # #
  103. # /Internal Client Media (/_matrix/client/VERSION/media) - MSC3916 #
  104. # #
  105. ##########################################################################
  106. {% endif %}
  107. {% if matrix_media_repo_container_labels_traefik_logout_enabled and matrix_media_repo_access_tokens_max_cache_time_seconds > 0 %}
  108. ############################################################
  109. # #
  110. # Public Client Logout #
  111. # (/_matrix/client/r0/{logout,logout/all} #
  112. # #
  113. ############################################################
  114. traefik.http.routers.matrix-media-repo-public-logout.rule={{ matrix_media_repo_container_labels_traefik_logout_rule }}
  115. {% if matrix_media_repo_container_labels_traefik_logout_priority | int > 0 %}
  116. traefik.http.routers.matrix-media-repo-public-logout.priority={{ matrix_media_repo_container_labels_traefik_logout_priority }}
  117. {% endif %}
  118. {% if middlewares | length > 0 %}
  119. traefik.http.routers.matrix-media-repo-public-logout.middlewares={{ middlewares | join(',') }}
  120. {% endif %}
  121. traefik.http.routers.matrix-media-repo-public-logout.service=matrix-media-repo
  122. traefik.http.routers.matrix-media-repo-public-logout.entrypoints={{ matrix_media_repo_container_labels_traefik_logout_entrypoints }}
  123. traefik.http.routers.matrix-media-repo-public-logout.tls={{ matrix_media_repo_container_labels_traefik_logout_tls | to_json }}
  124. {% if matrix_media_repo_container_labels_traefik_logout_tls %}
  125. traefik.http.routers.matrix-media-repo-public-logout.tls.certResolver={{ matrix_media_repo_container_labels_traefik_logout_tls_certResolver }}
  126. {% endif %}
  127. ############################################################
  128. # #
  129. # /Public Client Logout #
  130. # (/_matrix/client/r0/{logout,logout/all} #
  131. # #
  132. ############################################################
  133. {% endif %}
  134. {% if matrix_media_repo_container_labels_traefik_admin_enabled %}
  135. ############################################################
  136. # #
  137. # Public Client Admin (/_matrix/client/r0/admin/*) #
  138. # #
  139. ############################################################
  140. traefik.http.routers.matrix-media-repo-public-admin-federation.rule={{ matrix_media_repo_container_labels_traefik_admin_rule }}
  141. {% if matrix_media_repo_container_labels_traefik_admin_priority | int > 0 %}
  142. traefik.http.routers.matrix-media-repo-public-admin-federation.priority={{ matrix_media_repo_container_labels_traefik_admin_priority }}
  143. {% endif %}
  144. {% if middlewares | length > 0 %}
  145. traefik.http.routers.matrix-media-repo-public-admin-federation.middlewares={{ middlewares | join(',') }}
  146. {% endif %}
  147. traefik.http.routers.matrix-media-repo-public-admin-federation.service=matrix-media-repo
  148. traefik.http.routers.matrix-media-repo-public-admin-federation.entrypoints={{ matrix_media_repo_container_labels_traefik_admin_entrypoints }}
  149. traefik.http.routers.matrix-media-repo-public-admin-federation.tls={{ matrix_media_repo_container_labels_traefik_admin_tls | to_json }}
  150. {% if matrix_media_repo_container_labels_traefik_admin_tls %}
  151. traefik.http.routers.matrix-media-repo-public-admin-federation.tls.certResolver={{ matrix_media_repo_container_labels_traefik_admin_tls_certResolver }}
  152. {% endif %}
  153. ############################################################
  154. # #
  155. # /Public Client Admin (/_matrix/client/r0/admin/*) #
  156. # #
  157. ############################################################
  158. {% endif %}
  159. {% if matrix_media_repo_container_labels_traefik_t2bot_enabled %}
  160. ############################################################
  161. # #
  162. # Public Client t2bot APIs #
  163. # (/_matrix/client/unstable/io.t2bot.media) #
  164. # #
  165. ############################################################
  166. traefik.http.routers.matrix-media-repo-public-t2bot.rule={{ matrix_media_repo_container_labels_traefik_t2bot_rule }}
  167. {% if matrix_media_repo_container_labels_traefik_t2bot_priority | int > 0 %}
  168. traefik.http.routers.matrix-media-repo-public-t2bot.priority={{ matrix_media_repo_container_labels_traefik_t2bot_priority }}
  169. {% endif %}
  170. {% if middlewares | length > 0 %}
  171. traefik.http.routers.matrix-media-repo-public-t2bot.middlewares={{ middlewares | join(',') }}
  172. {% endif %}
  173. traefik.http.routers.matrix-media-repo-public-t2bot.service=matrix-media-repo
  174. traefik.http.routers.matrix-media-repo-public-t2bot.entrypoints={{ matrix_media_repo_container_labels_traefik_t2bot_entrypoints }}
  175. traefik.http.routers.matrix-media-repo-public-t2bot.tls={{ matrix_media_repo_container_labels_traefik_t2bot_tls | to_json }}
  176. {% if matrix_media_repo_container_labels_traefik_t2bot_tls %}
  177. traefik.http.routers.matrix-media-repo-public-t2bot.tls.certResolver={{ matrix_media_repo_container_labels_traefik_t2bot_tls_certResolver }}
  178. {% endif %}
  179. ############################################################
  180. # #
  181. # /Public Client t2bot APIs #
  182. # (/_matrix/client/unstable/io.t2bot.media) #
  183. # #
  184. ############################################################
  185. {% endif %}
  186. {% if matrix_media_repo_homeserver_federation_enabled %}
  187. # Matrix Federation
  188. {% if matrix_media_repo_container_labels_traefik_media_federation_enabled %}
  189. ############################################################
  190. # #
  191. # Public Federation Media (/_matrix/media) #
  192. # #
  193. ############################################################
  194. traefik.http.routers.matrix-media-repo-public-media-federation.rule={{ matrix_media_repo_container_labels_traefik_media_federation_rule }}
  195. {% if matrix_media_repo_container_labels_traefik_media_federation_priority | int > 0 %}
  196. traefik.http.routers.matrix-media-repo-public-media-federation.priority={{ matrix_media_repo_container_labels_traefik_media_federation_priority }}
  197. {% endif %}
  198. {% if middlewares | length > 0 %}
  199. traefik.http.routers.matrix-media-repo-public-media-federation.middlewares={{ middlewares | join(',') }}
  200. {% endif %}
  201. traefik.http.routers.matrix-media-repo-public-media-federation.service=matrix-media-repo
  202. traefik.http.routers.matrix-media-repo-public-media-federation.entrypoints={{ matrix_media_repo_container_labels_traefik_media_federation_entrypoints }}
  203. traefik.http.routers.matrix-media-repo-public-media-federation.tls={{ matrix_media_repo_container_labels_traefik_media_federation_tls | to_json }}
  204. {% if matrix_media_repo_container_labels_traefik_media_federation_tls %}
  205. traefik.http.routers.matrix-media-repo-public-media-federation.tls.certResolver={{ matrix_media_repo_container_labels_traefik_media_federation_tls_certResolver }}
  206. {% endif %}
  207. ############################################################
  208. # #
  209. # /Public Federation Media (/_matrix/media) #
  210. # #
  211. ############################################################
  212. {% endif %}
  213. {% if matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_enabled %}
  214. ##########################################################################
  215. # #
  216. # Public Federation Media (/_matrix/federation/VERSION/media) - MSC3916 #
  217. # #
  218. ##########################################################################
  219. traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.rule={{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_rule }}
  220. {% if matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_priority | int > 0 %}
  221. traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.priority={{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_priority }}
  222. {% endif %}
  223. {% if middlewares | length > 0 %}
  224. traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.middlewares={{ middlewares | join(',') }}
  225. {% endif %}
  226. traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.service=matrix-media-repo
  227. traefik.http.routers.matrix-media-repo-public-federation-matrix-federation-media.entrypoints={{ matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_entrypoints }}
  228. 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 }}
  229. {% if matrix_media_repo_container_labels_traefik_federation_matrix_federation_media_tls %}
  230. 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 }}
  231. {% endif %}
  232. ##########################################################################
  233. # #
  234. # /Public Federation Media (/_matrix/federation/VERSION/media) - MSC3916 #
  235. # #
  236. ##########################################################################
  237. {% endif %}
  238. {% if matrix_media_repo_container_labels_traefik_logout_federation_enabled and matrix_media_repo_access_tokens_max_cache_time_seconds > 0 %}
  239. ############################################################
  240. # #
  241. # Public Federation Logout #
  242. # (/_matrix/client/r0/{logout,logout/all} #
  243. # #
  244. ############################################################
  245. traefik.http.routers.matrix-media-repo-public-logout-federation.rule={{ matrix_media_repo_container_labels_traefik_logout_federation_rule }}
  246. {% if matrix_media_repo_container_labels_traefik_logout_federation_priority | int > 0 %}
  247. traefik.http.routers.matrix-media-repo-public-logout-federation.priority={{ matrix_media_repo_container_labels_traefik_logout_federation_priority }}
  248. {% endif %}
  249. {% if middlewares | length > 0 %}
  250. traefik.http.routers.matrix-media-repo-public-logout-federation.middlewares={{ middlewares | join(',') }}
  251. {% endif %}
  252. traefik.http.routers.matrix-media-repo-public-logout-federation.service=matrix-media-repo
  253. traefik.http.routers.matrix-media-repo-public-logout-federation.entrypoints={{ matrix_media_repo_container_labels_traefik_logout_federation_entrypoints }}
  254. traefik.http.routers.matrix-media-repo-public-logout-federation.tls={{ matrix_media_repo_container_labels_traefik_logout_federation_tls | to_json }}
  255. {% if matrix_media_repo_container_labels_traefik_logout_federation_tls %}
  256. traefik.http.routers.matrix-media-repo-public-logout-federation.tls.certResolver={{ matrix_media_repo_container_labels_traefik_logout_federation_tls_certResolver }}
  257. {% endif %}
  258. ############################################################
  259. # #
  260. # /Public Federation Logout #
  261. # (/_matrix/client/r0/{logout,logout/all} #
  262. # #
  263. ############################################################
  264. {% endif %}
  265. {% if matrix_media_repo_container_labels_traefik_admin_federation_enabled %}
  266. ############################################################
  267. # #
  268. # Public Federation Admin (/_matrix/client/r0/admin/*) #
  269. # #
  270. ############################################################
  271. traefik.http.routers.matrix-media-repo-public-admin.rule={{ matrix_media_repo_container_labels_traefik_admin_federation_rule }}
  272. {% if matrix_media_repo_container_labels_traefik_admin_federation_priority | int > 0 %}
  273. traefik.http.routers.matrix-media-repo-public-admin.priority={{ matrix_media_repo_container_labels_traefik_admin_federation_priority }}
  274. {% endif %}
  275. {% if middlewares | length > 0 %}
  276. traefik.http.routers.matrix-media-repo-public-admin.middlewares={{ middlewares | join(',') }}
  277. {% endif %}
  278. traefik.http.routers.matrix-media-repo-public-admin.service=matrix-media-repo
  279. traefik.http.routers.matrix-media-repo-public-admin.entrypoints={{ matrix_media_repo_container_labels_traefik_admin_federation_entrypoints }}
  280. traefik.http.routers.matrix-media-repo-public-admin.tls={{ matrix_media_repo_container_labels_traefik_admin_federation_tls | to_json }}
  281. {% if matrix_media_repo_container_labels_traefik_admin_federation_tls %}
  282. traefik.http.routers.matrix-media-repo-public-admin.tls.certResolver={{ matrix_media_repo_container_labels_traefik_admin_federation_tls_certResolver }}
  283. {% endif %}
  284. ############################################################
  285. # #
  286. # /Public Federation Admin (/_matrix/client/r0/admin/*) #
  287. # #
  288. ############################################################
  289. {% endif %}
  290. {% if matrix_media_repo_container_labels_traefik_t2bot_federation_enabled %}
  291. ############################################################
  292. # #
  293. # Public Federation t2bot APIs #
  294. # (/_matrix/client/unstable/io.t2bot.media) #
  295. # #
  296. ############################################################
  297. traefik.http.routers.matrix-media-repo-public-t2bot-federation.rule={{ matrix_media_repo_container_labels_traefik_t2bot_federation_rule }}
  298. {% if matrix_media_repo_container_labels_traefik_t2bot_federation_priority | int > 0 %}
  299. traefik.http.routers.matrix-media-repo-public-t2bot-federation.priority={{ matrix_media_repo_container_labels_traefik_t2bot_federation_priority }}
  300. {% endif %}
  301. {% if middlewares | length > 0 %}
  302. traefik.http.routers.matrix-media-repo-public-t2bot-federation.middlewares={{ middlewares | join(',') }}
  303. {% endif %}
  304. traefik.http.routers.matrix-media-repo-public-t2bot-federation.service=matrix-media-repo
  305. traefik.http.routers.matrix-media-repo-public-t2bot-federation.entrypoints={{ matrix_media_repo_container_labels_traefik_t2bot_federation_entrypoints }}
  306. traefik.http.routers.matrix-media-repo-public-t2bot-federation.tls={{ matrix_media_repo_container_labels_traefik_t2bot_federation_tls | to_json }}
  307. {% if matrix_media_repo_container_labels_traefik_t2bot_federation_tls %}
  308. traefik.http.routers.matrix-media-repo-public-t2bot-federation.tls.certResolver={{ matrix_media_repo_container_labels_traefik_t2bot_federation_tls_certResolver }}
  309. {% endif %}
  310. ############################################################
  311. # #
  312. # /Public Federation t2bot APIs #
  313. # (/_matrix/client/unstable/io.t2bot.media) #
  314. # #
  315. ############################################################
  316. {% endif %}
  317. {% endif %} {# end of matrix_media_repo_homeserver_federation_enabled if-check #}
  318. {% endif %} {# end of matrix_media_repo_container_labels_traefik_enabled if-check #}
  319. {{ matrix_media_repo_container_labels_additional_labels }}