Matrix Docker Ansible eploy
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.
 
 
 

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