Matrix Docker Ansible eploy
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 

470 wiersze
26 KiB

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