Matrix Docker Ansible eploy
Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 

404 rindas
23 KiB

  1. # SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
  2. # SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
  3. #
  4. # SPDX-License-Identifier: AGPL-3.0-or-later
  5. ---
  6. # Tuwunel is a Matrix homeserver, the official successor to conduwuit.
  7. # Project source code URL: https://github.com/matrix-construct/tuwunel
  8. # See: https://matrix-construct.github.io/tuwunel/
  9. matrix_tuwunel_enabled: true
  10. matrix_tuwunel_hostname: ''
  11. # renovate: datasource=docker depName=ghcr.io/matrix-construct/tuwunel
  12. matrix_tuwunel_version: v1.8.2
  13. matrix_tuwunel_container_image: "{{ matrix_tuwunel_container_image_registry_prefix }}matrix-construct/tuwunel:{{ matrix_tuwunel_container_image_tag }}"
  14. matrix_tuwunel_container_image_tag: "{{ matrix_tuwunel_version }}"
  15. matrix_tuwunel_container_image_registry_prefix: "{{ matrix_tuwunel_container_image_registry_prefix_upstream }}"
  16. matrix_tuwunel_container_image_registry_prefix_upstream: "{{ matrix_tuwunel_container_image_registry_prefix_upstream_default }}"
  17. matrix_tuwunel_container_image_registry_prefix_upstream_default: ghcr.io/
  18. matrix_tuwunel_base_path: "{{ matrix_base_data_path }}/tuwunel"
  19. matrix_tuwunel_config_path: "{{ matrix_tuwunel_base_path }}/config"
  20. matrix_tuwunel_data_path: "{{ matrix_tuwunel_base_path }}/data"
  21. matrix_tuwunel_config_port_number: 6167
  22. matrix_tuwunel_tmp_directory_size_mb: 500
  23. # List of systemd services that matrix-tuwunel.service depends on
  24. matrix_tuwunel_systemd_required_services_list: "{{ matrix_tuwunel_systemd_required_services_list_default + matrix_tuwunel_systemd_required_services_list_auto + matrix_tuwunel_systemd_required_services_list_custom }}"
  25. matrix_tuwunel_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
  26. matrix_tuwunel_systemd_required_services_list_auto: []
  27. matrix_tuwunel_systemd_required_services_list_custom: []
  28. # List of systemd services that matrix-tuwunel.service wants
  29. matrix_tuwunel_systemd_wanted_services_list: "{{ matrix_tuwunel_systemd_wanted_services_list_default + matrix_tuwunel_systemd_wanted_services_list_auto + matrix_tuwunel_systemd_wanted_services_list_custom }}"
  30. matrix_tuwunel_systemd_wanted_services_list_default: []
  31. matrix_tuwunel_systemd_wanted_services_list_auto: []
  32. matrix_tuwunel_systemd_wanted_services_list_custom: []
  33. # Controls how long to sleep for after starting the matrix-tuwunel container,
  34. # so that subsequent services that depend on it can start after the homeserver
  35. # is fully up.
  36. #
  37. # Set to 0 to remove the delay.
  38. matrix_tuwunel_systemd_service_post_start_delay_seconds: 3
  39. # The base container network. It will be auto-created by this role if it doesn't exist already.
  40. matrix_tuwunel_container_network: ""
  41. # A list of additional container networks that the container would be connected to.
  42. # The role does not create these networks, so make sure they already exist.
  43. # Use this to expose this container to another reverse proxy, which runs in a different container network.
  44. matrix_tuwunel_container_additional_networks: "{{ matrix_tuwunel_container_additional_networks_auto + matrix_tuwunel_container_additional_networks_custom }}"
  45. matrix_tuwunel_container_additional_networks_auto: []
  46. matrix_tuwunel_container_additional_networks_custom: []
  47. # matrix_tuwunel_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
  48. # See `../templates/labels.j2` for details.
  49. #
  50. # To inject your own other container labels, see `matrix_tuwunel_container_labels_additional_labels`.
  51. matrix_tuwunel_container_labels_traefik_enabled: true
  52. matrix_tuwunel_container_labels_traefik_docker_network: "{{ matrix_tuwunel_container_network }}"
  53. matrix_tuwunel_container_labels_traefik_entrypoints: web-secure
  54. matrix_tuwunel_container_labels_traefik_tls_certResolver: default # noqa var-naming
  55. # Controls whether labels will be added for handling the root (/) path on a public Traefik entrypoint.
  56. matrix_tuwunel_container_labels_public_client_root_enabled: true
  57. matrix_tuwunel_container_labels_public_client_root_traefik_hostname: "{{ matrix_tuwunel_hostname }}"
  58. matrix_tuwunel_container_labels_public_client_root_traefik_rule: "Host(`{{ matrix_tuwunel_container_labels_public_client_root_traefik_hostname }}`) && Path(`/`)"
  59. matrix_tuwunel_container_labels_public_client_root_traefik_priority: 0
  60. matrix_tuwunel_container_labels_public_client_root_traefik_entrypoints: "{{ matrix_tuwunel_container_labels_traefik_entrypoints }}"
  61. matrix_tuwunel_container_labels_public_client_root_traefik_tls: "{{ matrix_tuwunel_container_labels_public_client_root_traefik_entrypoints != 'web' }}"
  62. matrix_tuwunel_container_labels_public_client_root_traefik_tls_certResolver: "{{ matrix_tuwunel_container_labels_traefik_tls_certResolver }}" # noqa var-naming
  63. matrix_tuwunel_container_labels_public_client_root_redirection_enabled: false
  64. matrix_tuwunel_container_labels_public_client_root_redirection_url: ""
  65. # Controls whether labels will be added that expose the Client-Server API on a public Traefik entrypoint.
  66. matrix_tuwunel_container_labels_public_client_api_enabled: true
  67. matrix_tuwunel_container_labels_public_client_api_traefik_hostname: "{{ matrix_tuwunel_hostname }}"
  68. matrix_tuwunel_container_labels_public_client_api_traefik_path_prefix: /_matrix
  69. matrix_tuwunel_container_labels_public_client_api_traefik_rule: "Host(`{{ matrix_tuwunel_container_labels_public_client_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_tuwunel_container_labels_public_client_api_traefik_path_prefix }}`)"
  70. matrix_tuwunel_container_labels_public_client_api_traefik_priority: 0
  71. matrix_tuwunel_container_labels_public_client_api_traefik_entrypoints: "{{ matrix_tuwunel_container_labels_traefik_entrypoints }}"
  72. matrix_tuwunel_container_labels_public_client_api_traefik_tls: "{{ matrix_tuwunel_container_labels_public_client_api_traefik_entrypoints != 'web' }}"
  73. matrix_tuwunel_container_labels_public_client_api_traefik_tls_certResolver: "{{ matrix_tuwunel_container_labels_traefik_tls_certResolver }}" # noqa var-naming
  74. # Controls whether labels will be added that expose the Client-Server API on the internal Traefik entrypoint.
  75. matrix_tuwunel_container_labels_internal_client_api_enabled: false
  76. matrix_tuwunel_container_labels_internal_client_api_traefik_path_prefix: "{{ matrix_tuwunel_container_labels_public_client_api_traefik_path_prefix }}"
  77. matrix_tuwunel_container_labels_internal_client_api_traefik_rule: "PathPrefix(`{{ matrix_tuwunel_container_labels_internal_client_api_traefik_path_prefix }}`)"
  78. matrix_tuwunel_container_labels_internal_client_api_traefik_priority: "{{ matrix_tuwunel_container_labels_public_client_api_traefik_priority }}"
  79. matrix_tuwunel_container_labels_internal_client_api_traefik_entrypoints: ""
  80. # Controls whether labels will be added that expose the Server-Server (Federation) API on a public Traefik entrypoint.
  81. matrix_tuwunel_container_labels_public_federation_api_enabled: "{{ matrix_tuwunel_config_allow_federation }}"
  82. matrix_tuwunel_container_labels_public_federation_api_traefik_hostname: "{{ matrix_tuwunel_hostname }}"
  83. matrix_tuwunel_container_labels_public_federation_api_traefik_path_prefix: /_matrix
  84. matrix_tuwunel_container_labels_public_federation_api_traefik_rule: "Host(`{{ matrix_tuwunel_container_labels_public_federation_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_tuwunel_container_labels_public_federation_api_traefik_path_prefix }}`)"
  85. matrix_tuwunel_container_labels_public_federation_api_traefik_priority: 0
  86. matrix_tuwunel_container_labels_public_federation_api_traefik_entrypoints: ''
  87. # TLS is force-enabled because the spec (https://spec.matrix.org/latest/server-server-api/#tls) requires the federation API use HTTPS.
  88. matrix_tuwunel_container_labels_public_federation_api_traefik_tls: true
  89. matrix_tuwunel_container_labels_public_federation_api_traefik_tls_certResolver: "{{ matrix_tuwunel_container_labels_traefik_tls_certResolver }}" # noqa var-naming
  90. # Controls whether labels will be added that expose Tuwunel's first-party API (`/_tuwunel`) on a public Traefik entrypoint.
  91. # This namespace carries ad-hoc routes such as `/_tuwunel/server_version` and `/_tuwunel/local_user_count`, as well as the
  92. # native OpenID Connect provider endpoints (`/_tuwunel/oidc/...`) that clients use when Tuwunel performs OIDC login itself.
  93. # It is enabled by default because the reverse proxy must route it for those features to work.
  94. matrix_tuwunel_container_labels_public_tuwunel_api_enabled: true
  95. matrix_tuwunel_container_labels_public_tuwunel_api_traefik_hostname: "{{ matrix_tuwunel_hostname }}"
  96. matrix_tuwunel_container_labels_public_tuwunel_api_traefik_path_prefix: /_tuwunel
  97. matrix_tuwunel_container_labels_public_tuwunel_api_traefik_rule: "Host(`{{ matrix_tuwunel_container_labels_public_tuwunel_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_tuwunel_container_labels_public_tuwunel_api_traefik_path_prefix }}`)"
  98. matrix_tuwunel_container_labels_public_tuwunel_api_traefik_priority: 0
  99. matrix_tuwunel_container_labels_public_tuwunel_api_traefik_entrypoints: "{{ matrix_tuwunel_container_labels_traefik_entrypoints }}"
  100. matrix_tuwunel_container_labels_public_tuwunel_api_traefik_tls: "{{ matrix_tuwunel_container_labels_public_tuwunel_api_traefik_entrypoints != 'web' }}"
  101. matrix_tuwunel_container_labels_public_tuwunel_api_traefik_tls_certResolver: "{{ matrix_tuwunel_container_labels_traefik_tls_certResolver }}" # noqa var-naming
  102. # Controls whether labels will be added that expose Tuwunel's first-party API (`/_tuwunel`) on the internal Traefik entrypoint.
  103. matrix_tuwunel_container_labels_internal_tuwunel_api_enabled: false
  104. matrix_tuwunel_container_labels_internal_tuwunel_api_traefik_path_prefix: /_tuwunel
  105. matrix_tuwunel_container_labels_internal_tuwunel_api_traefik_rule: "PathPrefix(`{{ matrix_tuwunel_container_labels_internal_tuwunel_api_traefik_path_prefix }}`)"
  106. matrix_tuwunel_container_labels_internal_tuwunel_api_traefik_priority: 0
  107. matrix_tuwunel_container_labels_internal_tuwunel_api_traefik_entrypoints: ""
  108. # Controls whether labels will be added that expose the Synapse-compatible Administration API (`/_synapse/admin`) on a public Traefik entrypoint.
  109. # Tuwunel serves this API so that administration dashboards (synapse-admin, ketesa) and moderation bots (Draupnir, Meowlnir) work against it.
  110. # Every endpoint requires an administrator access token. It is disabled by default; you may prefer to expose it only on the internal entrypoint below.
  111. matrix_tuwunel_container_labels_public_client_synapse_admin_api_enabled: false
  112. matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_hostname: "{{ matrix_tuwunel_hostname }}"
  113. matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_path_prefix: /_synapse/admin
  114. matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_rule: "Host(`{{ matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_path_prefix }}`)"
  115. matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_priority: 0
  116. matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_entrypoints: "{{ matrix_tuwunel_container_labels_traefik_entrypoints }}"
  117. matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_tls: "{{ matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_entrypoints != 'web' }}"
  118. matrix_tuwunel_container_labels_public_client_synapse_admin_api_traefik_tls_certResolver: "{{ matrix_tuwunel_container_labels_traefik_tls_certResolver }}" # noqa var-naming
  119. # Controls whether labels will be added that expose the Synapse-compatible Administration API (`/_synapse/admin`) on the internal Traefik entrypoint.
  120. matrix_tuwunel_container_labels_internal_client_synapse_admin_api_enabled: false
  121. matrix_tuwunel_container_labels_internal_client_synapse_admin_api_traefik_path_prefix: /_synapse/admin
  122. matrix_tuwunel_container_labels_internal_client_synapse_admin_api_traefik_rule: "PathPrefix(`{{ matrix_tuwunel_container_labels_internal_client_synapse_admin_api_traefik_path_prefix }}`)"
  123. matrix_tuwunel_container_labels_internal_client_synapse_admin_api_traefik_priority: 0
  124. matrix_tuwunel_container_labels_internal_client_synapse_admin_api_traefik_entrypoints: ""
  125. # Additional Docker container labels (multiline string) appended verbatim to the label file.
  126. # See `../templates/labels.j2`.
  127. matrix_tuwunel_container_labels_additional_labels: ''
  128. # Extra arguments for the Docker container
  129. matrix_tuwunel_container_extra_arguments: []
  130. # Specifies which template files to use when configuring tuwunel.
  131. # To override the rendered config wholesale, copy the template into your inventory and point this at it:
  132. # matrix_tuwunel_template_tuwunel_config: "{{ playbook_dir }}/inventory/host_vars/matrix.example.com/tuwunel.toml.j2"
  133. matrix_tuwunel_template_tuwunel_config: "{{ role_path }}/templates/tuwunel.toml.j2"
  134. # The pretty server name used as a suffix on user/room IDs. Cannot be changed after first start without a database wipe.
  135. matrix_tuwunel_config_server_name: "{{ matrix_domain }}"
  136. # Max size for uploads, in bytes
  137. matrix_tuwunel_config_max_request_size: 20000000
  138. # Enables open registration. If false, no users can register on this server.
  139. matrix_tuwunel_config_allow_registration: false
  140. # When registration is enabled, set a strong token to protect the endpoint from abuse.
  141. # Generate one with e.g. `pwgen -s 64 1`. If left empty AND `allow_registration` is true,
  142. # you must explicitly opt in via the open-registration acknowledgement variable below.
  143. matrix_tuwunel_config_registration_token: ''
  144. # Acknowledgement required to allow registration with no token.
  145. # Maps to tuwunel's `yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse`.
  146. matrix_tuwunel_config_yes_i_am_very_very_sure_i_want_an_open_registration_server_prone_to_abuse: false
  147. # Suffix appended to new-user displaynames upon registration. Empty disables it.
  148. # Upstream defaults to a flag glyph; we keep MDAD homeserver behavior consistent and leave this empty.
  149. matrix_tuwunel_config_new_user_displayname_suffix: ""
  150. # Emergency password to grant access to the admin user when locked out. Empty disables.
  151. matrix_tuwunel_config_emergency_password: ''
  152. # Trusted notary servers used for key verification.
  153. matrix_tuwunel_config_trusted_servers:
  154. - "matrix.org"
  155. # Logging directives in `tracing-subscriber` env-filter syntax.
  156. matrix_tuwunel_config_log: "info,state_res=warn"
  157. # TURN integration
  158. matrix_tuwunel_config_turn_uris: []
  159. matrix_tuwunel_config_turn_secret: ''
  160. matrix_tuwunel_config_turn_username: ''
  161. matrix_tuwunel_config_turn_password: ''
  162. # Self-check toggles
  163. matrix_tuwunel_self_check_validate_certificates: true
  164. # Encryption / room creation policy
  165. matrix_tuwunel_config_allow_encryption: true
  166. matrix_tuwunel_config_allow_room_creation: true
  167. # Default room version newly created rooms will use.
  168. matrix_tuwunel_config_default_room_version: '12'
  169. # Rooms newly registered users will be auto-joined to.
  170. # Must be rooms this server has joined at least once and that are public.
  171. matrix_tuwunel_config_auto_join_rooms: []
  172. # (De)federation toggles
  173. matrix_tuwunel_config_allow_federation: true
  174. matrix_tuwunel_config_allowed_remote_server_names: []
  175. matrix_tuwunel_config_forbidden_remote_server_names: []
  176. matrix_tuwunel_config_forbidden_remote_room_directory_server_names: []
  177. matrix_tuwunel_config_prevent_media_downloads_from: []
  178. # List of IPv4/IPv6 CIDR ranges tuwunel refuses to send outbound requests to (SSRF protection).
  179. # This applies to push gateway delivery, URL previews, and remote media fetches.
  180. # Bridges/appservices use a separate resolver and are not affected.
  181. #
  182. # The default mirrors tuwunel's own upstream default, which denies RFC1918,
  183. # loopback, multicast, and other unroutable/testnet ranges.
  184. #
  185. # To deny additional ranges, append to `matrix_tuwunel_config_ip_range_denylist_custom`.
  186. # To permit a range that the default denies (e.g. if you run a push gateway like a
  187. # localhost Sygnal or a LAN ntfy/UnifiedPush server on a private/loopback address, to
  188. # which push delivery would otherwise be silently blocked), override
  189. # `matrix_tuwunel_config_ip_range_denylist_default` with a trimmed list.
  190. # Set the whole list to `[]` to disable denylisting entirely.
  191. matrix_tuwunel_config_ip_range_denylist: "{{ matrix_tuwunel_config_ip_range_denylist_default + matrix_tuwunel_config_ip_range_denylist_auto + matrix_tuwunel_config_ip_range_denylist_custom }}"
  192. matrix_tuwunel_config_ip_range_denylist_default:
  193. - '127.0.0.0/8'
  194. - '10.0.0.0/8'
  195. - '172.16.0.0/12'
  196. - '192.168.0.0/16'
  197. - '100.64.0.0/10'
  198. - '192.0.0.0/24'
  199. - '169.254.0.0/16'
  200. - '192.88.99.0/24'
  201. - '198.18.0.0/15'
  202. - '192.0.2.0/24'
  203. - '198.51.100.0/24'
  204. - '203.0.113.0/24'
  205. - '224.0.0.0/4'
  206. - '::1/128'
  207. - 'fe80::/10'
  208. - 'fc00::/7'
  209. - '2001:db8::/32'
  210. - 'ff00::/8'
  211. - 'fec0::/10'
  212. matrix_tuwunel_config_ip_range_denylist_auto: []
  213. matrix_tuwunel_config_ip_range_denylist_custom: []
  214. # MSC4284 policy server enforcement.
  215. # When enabled, rooms with a valid `m.room.policy` state event will have
  216. # outgoing events signed by the configured policy server before federation.
  217. # Refusal aborts the local request; transient network or timeout failures
  218. # fail open with a warn log so a policy-server outage does not silently
  219. # take the room offline.
  220. matrix_tuwunel_config_enable_policy_servers: false
  221. # Timeout (in seconds) for outbound `/sign` calls and inbound
  222. # signature-fetches against a room's policy server.
  223. matrix_tuwunel_config_policy_server_request_timeout: 5
  224. # Outgoing presence is heavy on CPU and network and almost no clients use it. Off by default.
  225. matrix_tuwunel_config_allow_outgoing_presence: false
  226. # URL preview gating
  227. matrix_tuwunel_config_url_preview_domain_contains_allowlist: []
  228. matrix_tuwunel_config_url_preview_domain_explicit_allowlist: []
  229. matrix_tuwunel_config_url_preview_check_root_domain: false
  230. # Well-known overrides
  231. # Maps to `[global.well_known] client = "..."` and `server = "host:port"`.
  232. matrix_tuwunel_config_well_known_client: ''
  233. matrix_tuwunel_config_well_known_server: ''
  234. matrix_tuwunel_config_well_known_support_page: ''
  235. matrix_tuwunel_config_well_known_support_email: ''
  236. matrix_tuwunel_config_well_known_support_mxid: ''
  237. # MatrixRTC foci served via /_matrix/client/v1/rtc/transports (MSC4143)
  238. matrix_tuwunel_config_well_known_livekit_url: ''
  239. # RocksDB tuning. Empty values let tuwunel auto-pick.
  240. matrix_tuwunel_config_rocksdb_compression_algo: 'zstd' # one of: zstd, lz4, bz2, none
  241. matrix_tuwunel_config_rocksdb_compression_level: ''
  242. matrix_tuwunel_config_rocksdb_bottommost_compression_level: ''
  243. matrix_tuwunel_config_rocksdb_direct_io: false
  244. matrix_tuwunel_config_rocksdb_parallelism_threads: 0
  245. matrix_tuwunel_config_rocksdb_max_log_file_size: ''
  246. matrix_tuwunel_config_rocksdb_log_time_to_roll: ''
  247. matrix_tuwunel_config_database_backup_path: ''
  248. matrix_tuwunel_config_database_backups_to_keep: 1
  249. # Cache sizing. Empty values let tuwunel auto-pick (scaled by CPU count).
  250. matrix_tuwunel_config_cache_capacity_modifier: ''
  251. matrix_tuwunel_config_db_cache_capacity_mb: ''
  252. matrix_tuwunel_config_db_write_buffer_capacity_mb: ''
  253. # Admin room
  254. matrix_tuwunel_config_create_admin_room: true
  255. matrix_tuwunel_config_federate_admin_room: false
  256. matrix_tuwunel_config_grant_admin_to_first_user: true
  257. # Sentry crash/error reporting (off by default)
  258. matrix_tuwunel_config_sentry_enabled: false
  259. matrix_tuwunel_config_sentry_endpoint: ''
  260. matrix_tuwunel_config_sentry_send_server_name: false
  261. matrix_tuwunel_config_sentry_traces_sample_rate: 0.15
  262. # Blurhashing for image previews
  263. matrix_tuwunel_config_blurhashing_enabled: true
  264. matrix_tuwunel_config_blurhashing_components_x: 4
  265. matrix_tuwunel_config_blurhashing_components_y: 3
  266. matrix_tuwunel_config_blurhashing_max_raw_size: 33554432
  267. # Native TLS (use only when reverse-proxying is not desired)
  268. matrix_tuwunel_config_tls_certs: ''
  269. matrix_tuwunel_config_tls_key: ''
  270. matrix_tuwunel_config_tls_dual_protocol: false
  271. # LDAP authentication ([global.ldap] in tuwunel.toml).
  272. # See: https://matrix-construct.github.io/tuwunel/authentication/providers.html
  273. matrix_tuwunel_config_ldap_enabled: false
  274. matrix_tuwunel_config_ldap_uri: ''
  275. matrix_tuwunel_config_ldap_base_dn: ''
  276. matrix_tuwunel_config_ldap_bind_dn: ''
  277. matrix_tuwunel_config_ldap_bind_password_file: ''
  278. matrix_tuwunel_config_ldap_filter: '(objectClass=*)'
  279. matrix_tuwunel_config_ldap_uid_attribute: 'uid'
  280. matrix_tuwunel_config_ldap_name_attribute: 'givenName'
  281. matrix_tuwunel_config_ldap_admin_base_dn: ''
  282. matrix_tuwunel_config_ldap_admin_filter: ''
  283. # JWT authentication ([global.jwt] in tuwunel.toml).
  284. matrix_tuwunel_config_jwt_enabled: false
  285. matrix_tuwunel_config_jwt_key: ''
  286. matrix_tuwunel_config_jwt_format: 'HMAC' # one of: HMAC, B64HMAC, ECDSA, EDDSA
  287. matrix_tuwunel_config_jwt_algorithm: 'HS256'
  288. matrix_tuwunel_config_jwt_register_user: true
  289. matrix_tuwunel_config_jwt_audience: []
  290. matrix_tuwunel_config_jwt_issuer: []
  291. matrix_tuwunel_config_jwt_require_exp: false
  292. matrix_tuwunel_config_jwt_require_nbf: false
  293. matrix_tuwunel_config_jwt_validate_exp: true
  294. matrix_tuwunel_config_jwt_validate_nbf: true
  295. # OAuth2/OIDC identity providers.
  296. #
  297. # Each entry becomes a `[[global.identity_provider]]` block. Only fields you set are emitted;
  298. # tuwunel applies brand-aware defaults for known providers (Google, GitHub, Keycloak, MAS, etc).
  299. #
  300. # Example:
  301. # matrix_tuwunel_config_identity_providers:
  302. # - brand: keycloak
  303. # client_id: matrix
  304. # client_secret: '...'
  305. # issuer_url: https://sso.example.com/realms/matrix
  306. # callback_url: https://matrix.example.com/_matrix/client/unstable/login/sso/callback/matrix
  307. # trusted: true
  308. # - brand: github
  309. # client_id: '...'
  310. # client_secret: '...'
  311. #
  312. # See: https://matrix-construct.github.io/tuwunel/authentication/providers.html
  313. matrix_tuwunel_config_identity_providers: []
  314. # Media storage providers.
  315. #
  316. # Each entry maps an ID to a backend. `kind` is `local` or `s3`; remaining keys map directly
  317. # to fields under `[global.storage_provider.<ID>.<kind>]`.
  318. #
  319. # Examples:
  320. # matrix_tuwunel_config_storage_providers:
  321. # - id: primary
  322. # kind: local
  323. # base_path: /var/lib/tuwunel/media
  324. # - id: archive
  325. # kind: s3
  326. # url: s3://my-bucket/media
  327. # region: us-east-1
  328. # key: AKIA...
  329. # secret: '...'
  330. #
  331. # See: https://matrix-construct.github.io/tuwunel/media/storage.html
  332. matrix_tuwunel_config_storage_providers: []
  333. # Additional environment variables to pass to the container, one per line.
  334. # Environment variables override the rendered config file.
  335. #
  336. # Example:
  337. # matrix_tuwunel_environment_variables_extension: |
  338. # TUWUNEL_REQUEST_TIMEOUT=60
  339. # TUWUNEL_DNS_CACHE_SIZE=131072
  340. matrix_tuwunel_environment_variables_extension: ''
  341. # matrix_tuwunel_restart_necessary controls whether the service will be restarted (when true)
  342. # or merely started (when false) by the systemd service-manager role when conditional restart
  343. # is enabled. Computed during installation based on whether config / unit / image changed.
  344. matrix_tuwunel_restart_necessary: false