Matrix Docker Ansible eploy
25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 

298 satır
19 KiB

  1. # SOME DESCRIPTIVE TITLE.
  2. # Copyright (C) 2018-2026, Slavi Pantaleev, Aine Etke, MDAD community members
  3. # This file is distributed under the same license as the matrix-docker-ansible-deploy package.
  4. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
  5. #
  6. #, fuzzy
  7. msgid ""
  8. msgstr ""
  9. "Project-Id-Version: matrix-docker-ansible-deploy \n"
  10. "Report-Msgid-Bugs-To: \n"
  11. "POT-Creation-Date: 2026-07-19 03:41+0000\n"
  12. "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
  13. "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
  14. "Language-Team: LANGUAGE <LL@li.org>\n"
  15. "MIME-Version: 1.0\n"
  16. "Content-Type: text/plain; charset=UTF-8\n"
  17. "Content-Transfer-Encoding: 8bit\n"
  18. #: ../../../docs/configuring-playbook-tuwunel.md:8
  19. msgid "Configuring Tuwunel (optional)"
  20. msgstr ""
  21. #: ../../../docs/configuring-playbook-tuwunel.md:10
  22. msgid "The playbook can install and configure the [Tuwunel](https://matrix-construct.github.io/tuwunel/) Matrix homeserver for you."
  23. msgstr ""
  24. #: ../../../docs/configuring-playbook-tuwunel.md:12
  25. msgid "Tuwunel is a featureful homeserver written entirely in Rust, intended as a scalable, low-cost, enterprise-ready alternative to Synapse that fully implements the [Matrix specification](https://spec.matrix.org/latest/) for all but the most niche uses. It is the official successor to [conduwuit](configuring-playbook-conduwuit.md), is now sponsored by the government of Switzerland 🇨🇭 (where it is currently deployed for citizens), and is used by a number of organisations with a vested interest in its continued development. See the project's [documentation](https://matrix-construct.github.io/tuwunel/) for further background."
  26. msgstr ""
  27. #: ../../../docs/configuring-playbook-tuwunel.md:14
  28. msgid "By default, the playbook installs [Synapse](https://github.com/element-hq/synapse) as it's the only full-featured Matrix server at the moment. If that's okay, you can skip this document."
  29. msgstr ""
  30. #: ../../../docs/configuring-playbook-tuwunel.md:17
  31. msgid "**You can't switch an existing Matrix server's implementation** (e.g. Synapse → Tuwunel). Proceed below only if you're OK with starting over, or you're dealing with a server on a new domain name which hasn't participated in the Matrix federation yet. The one exception is migrating from conduwuit; see [Migrating from conduwuit](#migrating-from-conduwuit)."
  32. msgstr ""
  33. #: ../../../docs/configuring-playbook-tuwunel.md:18
  34. msgid "**Homeserver implementations other than Synapse may not be fully functional** with every part of this playbook. Make yourself familiar with the trade-offs before proceeding."
  35. msgstr ""
  36. #: ../../../docs/configuring-playbook-tuwunel.md:20
  37. msgid "Adjusting the playbook configuration"
  38. msgstr ""
  39. #: ../../../docs/configuring-playbook-tuwunel.md:22
  40. msgid "To use Tuwunel, set the following on `inventory/host_vars/matrix.example.com/vars.yml`:"
  41. msgstr ""
  42. #: ../../../docs/configuring-playbook-tuwunel.md:36
  43. msgid "The first user account that registers becomes a server admin and is automatically invited to the admin room. See [Creating the first user account](#creating-the-first-user-account) below for the bootstrap procedure."
  44. msgstr ""
  45. #: ../../../docs/configuring-playbook-tuwunel.md:38
  46. msgid "Wiring done for you"
  47. msgstr ""
  48. #: ../../../docs/configuring-playbook-tuwunel.md:40
  49. msgid "When `matrix_homeserver_implementation: tuwunel` is set, the playbook automatically integrates Tuwunel with the rest of your stack:"
  50. msgstr ""
  51. #: ../../../docs/configuring-playbook-tuwunel.md:42
  52. msgid "**Federation.** Toggled by `matrix_homeserver_federation_enabled`. The federation virtual host (port 8448 in the default setup) is wired up via Traefik labels."
  53. msgstr ""
  54. #: ../../../docs/configuring-playbook-tuwunel.md:43
  55. msgid "**Well-known.** `matrix_tuwunel_config_well_known_client` is set to your public homeserver URL whenever SSL is enabled. Matrix clients use this for delegated-domain server discovery; identity-provider entries below can also omit their `callback_url`, since Tuwunel derives `<well-known>/_matrix/client/unstable/login/sso/callback/<client_id>` automatically."
  56. msgstr ""
  57. #: ../../../docs/configuring-playbook-tuwunel.md:44
  58. msgid "**Element Call / MatrixRTC.** When the [LiveKit JWT service](configuring-playbook-matrix-rtc.md) is enabled, Tuwunel publishes its public URL through `.well-known/matrix/client` per [MSC4143](https://github.com/matrix-org/matrix-spec-proposals/pull/4143)."
  59. msgstr ""
  60. #: ../../../docs/configuring-playbook-tuwunel.md:45
  61. msgid "**Legacy calls (TURN).** When [Coturn](configuring-playbook-turn.md) is enabled, its URIs and shared secret (or username/password, depending on `coturn_authentication_method`) are wired automatically."
  62. msgstr ""
  63. #: ../../../docs/configuring-playbook-tuwunel.md:47
  64. msgid "Extending the configuration"
  65. msgstr ""
  66. #: ../../../docs/configuring-playbook-tuwunel.md:49
  67. msgid "Tuwunel exposes a large configuration surface. The role surfaces commonly used options as Ansible variables under `matrix_tuwunel_config_*`. See [`roles/custom/matrix-tuwunel/defaults/main.yml`](../roles/custom/matrix-tuwunel/defaults/main.yml) for the complete list, and [`roles/custom/matrix-tuwunel/templates/tuwunel.toml.j2`](../roles/custom/matrix-tuwunel/templates/tuwunel.toml.j2) for the rendered configuration."
  68. msgstr ""
  69. #: ../../../docs/configuring-playbook-tuwunel.md:51
  70. msgid "For options that aren't surfaced as a dedicated variable, [environment variables](https://matrix-construct.github.io/tuwunel/configuration.html#environment-variables) are the recommended override mechanism. They take priority over the rendered TOML, are scoped to the running container, and require no template patching:"
  71. msgstr ""
  72. #: ../../../docs/configuring-playbook-tuwunel.md:59
  73. msgid "Keys nested under a TOML section use `__` (double underscore) to descend, e.g. `TUWUNEL_WELL_KNOWN__SERVER`. User-named sections become path segments too: `TUWUNEL_STORAGE_PROVIDER__ARCHIVE__S3__URL` overrides the `url` field of the `archive` storage provider in the example below."
  74. msgstr ""
  75. #: ../../../docs/configuring-playbook-tuwunel.md:61
  76. msgid "If you need wholesale control of the configuration file, copy [`roles/custom/matrix-tuwunel/templates/tuwunel.toml.j2`](../roles/custom/matrix-tuwunel/templates/tuwunel.toml.j2) into your inventory and point `matrix_tuwunel_template_tuwunel_config` at your copy."
  77. msgstr ""
  78. #: ../../../docs/configuring-playbook-tuwunel.md:63
  79. msgid "The container image published as `:latest` is built with `io_uring`, `jemalloc`, LDAP, blurhashing, URL preview, sentry telemetry, and zstd compression all enabled, so most opt-in features are simply a configuration toggle away."
  80. msgstr ""
  81. #: ../../../docs/configuring-playbook-tuwunel.md:65
  82. msgid "Identity providers (OAuth2 / OIDC)"
  83. msgstr ""
  84. #: ../../../docs/configuring-playbook-tuwunel.md:67
  85. msgid "Configure one or more `[[global.identity_provider]]` entries via a list. Each entry maps directly to Tuwunel's [identity-provider fields](https://matrix-construct.github.io/tuwunel/authentication/providers.html); only the fields you set are emitted. GitHub, GitLab, and Google have built-in `issuer_url` defaults so a `client_id` plus `client_secret` is enough; for any other `brand` (Apple, Facebook, Keycloak, MAS, Twitter, etc.) you must supply `issuer_url` explicitly:"
  86. msgstr ""
  87. #: ../../../docs/configuring-playbook-tuwunel.md:82
  88. msgid "Self-hosted providers must supply both `client_id` and `issuer_url`. Set `trusted: true` only on providers you operate yourself; trusting a public provider (GitHub, Google, etc.) is an account-takeover risk."
  89. msgstr ""
  90. #: ../../../docs/configuring-playbook-tuwunel.md:84
  91. msgid "LDAP"
  92. msgstr ""
  93. #: ../../../docs/configuring-playbook-tuwunel.md:86
  94. msgid "Tuwunel can authenticate `m.login.password` requests against an LDAP directory and, in search-then-bind mode, keep admin status in sync with directory membership. The shipped image already includes the `ldap` build feature."
  95. msgstr ""
  96. #: ../../../docs/configuring-playbook-tuwunel.md:98
  97. msgid "`bind_password_file` is read **inside the container**. The role bind-mounts `/matrix/tuwunel/config` to `/etc/tuwunel` (read-only) and `/matrix/tuwunel/data` to `/var/lib/tuwunel`. To make the file available at the path above, drop it on the host at `/matrix/tuwunel/config/ldap.pw` (owned by `matrix:matrix`) before running the playbook; the role does not template secret files for you."
  98. msgstr ""
  99. #: ../../../docs/configuring-playbook-tuwunel.md:100
  100. msgid "For direct-bind, anonymous-search, and admin-sync details, see [LDAP authentication](https://matrix-construct.github.io/tuwunel/authentication/ldap.html)."
  101. msgstr ""
  102. #: ../../../docs/configuring-playbook-tuwunel.md:102
  103. msgid "JWT login"
  104. msgstr ""
  105. #: ../../../docs/configuring-playbook-tuwunel.md:104
  106. msgid "Tuwunel can accept signed JSON Web Tokens both as a login flow and as a User-Interactive Authentication step:"
  107. msgstr ""
  108. #: ../../../docs/configuring-playbook-tuwunel.md:115
  109. msgid "The defaults match Synapse's `experimental_features.jwt_config` semantics, so a key + algorithm port should authenticate the same set of tokens. See [Enterprise JWT](https://matrix-construct.github.io/tuwunel/authentication/jwt.html) for the full reference, including the asymmetric (ECDSA / EdDSA) formats and the operator-controlled UIAA override flow."
  110. msgstr ""
  111. #: ../../../docs/configuring-playbook-tuwunel.md:117
  112. msgid "Media storage providers"
  113. msgstr ""
  114. #: ../../../docs/configuring-playbook-tuwunel.md:119
  115. msgid "Each entry becomes a `[global.storage_provider.<id>.<kind>]` block. `kind` is `local` or `s3`; the remaining keys map directly to the fields documented in [Storage providers](https://matrix-construct.github.io/tuwunel/media/storage.html):"
  116. msgstr ""
  117. #: ../../../docs/configuring-playbook-tuwunel.md:136
  118. msgid "The S3 backend ships with native multipart upload, so no goofys/rclone sidecar is required. MinIO, Cloudflare R2, and DigitalOcean Spaces all work; set `endpoint` and `use_vhost_request: false` as appropriate."
  119. msgstr ""
  120. #: ../../../docs/configuring-playbook-tuwunel.md:139
  121. msgid "Local provider paths must live under `/var/lib/tuwunel` (the container's data mount, persisted on the host at `/matrix/tuwunel/data`), or you must mount the target directory into the container yourself via `matrix_tuwunel_container_extra_arguments`. The container otherwise runs read-only."
  122. msgstr ""
  123. #: ../../../docs/configuring-playbook-tuwunel.md:141
  124. msgid "RocksDB and cache tuning"
  125. msgstr ""
  126. #: ../../../docs/configuring-playbook-tuwunel.md:143
  127. msgid "Tuwunel embeds RocksDB. The defaults (`rocksdb_compression_algo: zstd`) suit most deployments. For high-throughput servers you may want to enable direct I/O, raise parallelism, and configure a backup path:"
  128. msgstr ""
  129. #: ../../../docs/configuring-playbook-tuwunel.md:151
  130. msgid "`matrix_tuwunel_config_cache_capacity_modifier` is left empty by default, so Tuwunel picks a value (`1.0` since v1.7.0, with rebalanced per-cache sizes that already raise memory use). Set it to `2.0` only on small hosts with four or fewer cores; on larger machines the default is recommended."
  131. msgstr ""
  132. #: ../../../docs/configuring-playbook-tuwunel.md:153
  133. msgid "If you run on ZFS, the [Tuwunel maintenance guide](https://matrix-construct.github.io/tuwunel/maintenance.html#zfs) lists the dataset properties (`recordsize`, `primarycache`, `compression`, `atime`, `logbias`) and config flags (`rocksdb_direct_io`, `rocksdb_allow_fallocate`) you need to adjust to avoid severe write amplification."
  134. msgstr ""
  135. #: ../../../docs/configuring-playbook-tuwunel.md:155
  136. msgid "To enable Sentry crash reporting, set `matrix_tuwunel_config_sentry_enabled: true`."
  137. msgstr ""
  138. #: ../../../docs/configuring-playbook-tuwunel.md:157
  139. msgid "Federation gating"
  140. msgstr ""
  141. #: ../../../docs/configuring-playbook-tuwunel.md:159
  142. msgid "Tuwunel accepts regular-expression patterns at every level of remote-server filtering:"
  143. msgstr ""
  144. #: ../../../docs/configuring-playbook-tuwunel.md:170
  145. msgid "Tuwunel additionally implements [MSC4284 policy servers](https://github.com/matrix-org/matrix-spec-proposals/pull/4284) for room-level federation gating. The policy itself lives in room state, but enforcement is opt-in at the server level:"
  146. msgstr ""
  147. #: ../../../docs/configuring-playbook-tuwunel.md:177
  148. msgid "When enabled, rooms with a valid `m.room.policy` state event have outgoing events signed by the configured policy server before federation. Transient network or timeout failures fail open (with a warn log), so a policy-server outage will not silently take the room offline."
  149. msgstr ""
  150. #: ../../../docs/configuring-playbook-tuwunel.md:179
  151. msgid "Default room version"
  152. msgstr ""
  153. #: ../../../docs/configuring-playbook-tuwunel.md:181
  154. msgid "The role sets `default_room_version: '12'`, so newly created rooms default to Matrix [room version 12](https://github.com/matrix-org/matrix-spec-proposals/pull/4289) (\"Hydra\"). Override `matrix_tuwunel_config_default_room_version` if you need an earlier version for client compatibility."
  155. msgstr ""
  156. #: ../../../docs/configuring-playbook-tuwunel.md:183
  157. msgid "The `/_tuwunel` API path"
  158. msgstr ""
  159. #: ../../../docs/configuring-playbook-tuwunel.md:185
  160. msgid "Besides `/_matrix`, Tuwunel serves its own first-party routes under `/_tuwunel`. This namespace carries ad-hoc endpoints such as `/_tuwunel/server_version` and `/_tuwunel/local_user_count`, and the [native OpenID Connect provider](https://matrix-construct.github.io/tuwunel/authentication/oidc-server.html) endpoints (`/_tuwunel/oidc/...`) that clients use when Tuwunel handles OIDC login itself, rather than delegating to an upstream provider as described above. The role routes `/_tuwunel` on the public entrypoint by default so these features work out of the box."
  161. msgstr ""
  162. #: ../../../docs/configuring-playbook-tuwunel.md:187
  163. msgid "To keep this namespace off the public entrypoint and expose it only on the internal one, set:"
  164. msgstr ""
  165. #: ../../../docs/configuring-playbook-tuwunel.md:194
  166. msgid "Exposing the Administration API"
  167. msgstr ""
  168. #: ../../../docs/configuring-playbook-tuwunel.md:196
  169. msgid "Tuwunel serves a Synapse-compatible Administration API under the `/_synapse/admin` path, so administration dashboards (such as synapse-admin and ketesa) and moderation bots (such as Draupnir and Meowlnir) work against it. The served endpoints are listed on the [Tuwunel Synapse Admin API page](https://matrix-construct.github.io/tuwunel/development/compliance/synapse-admin.html)."
  170. msgstr ""
  171. #: ../../../docs/configuring-playbook-tuwunel.md:198
  172. msgid "The API is not routed through the reverse proxy by default. Every endpoint requires an administrator access token, but you may still prefer to keep it off the public entrypoint. To reach it only from trusted networks, expose it on the internal Traefik entrypoint:"
  173. msgstr ""
  174. #: ../../../docs/configuring-playbook-tuwunel.md:204
  175. msgid "To expose it publicly instead (for example, when a dashboard runs in the browser), set:"
  176. msgstr ""
  177. #: ../../../docs/configuring-playbook-tuwunel.md:210
  178. msgid "Creating the first user account"
  179. msgstr ""
  180. #: ../../../docs/configuring-playbook-tuwunel.md:212
  181. msgid "Unlike Synapse and Dendrite, Tuwunel does not register users from the command line or via the playbook. On first startup it logs a one-time-use registration token to its journal:"
  182. msgstr ""
  183. #: ../../../docs/configuring-playbook-tuwunel.md:219
  184. msgid "Use the token to create your first account from any client that supports token-gated registration (e.g. [Element Web](configuring-playbook-client-element-web.md)). The account is auto-promoted to admin and invited to the admin room together with the `@conduit:<server_name>` server bot. The bot keeps the legacy `conduit` localpart due to the project's lineage from Conduit."
  185. msgstr ""
  186. #: ../../../docs/configuring-playbook-tuwunel.md:221
  187. msgid "Configuring bridges and appservices"
  188. msgstr ""
  189. #: ../../../docs/configuring-playbook-tuwunel.md:223
  190. msgid "The playbook does not auto-register appservices for Tuwunel. After your bridge has produced its `registration.yaml` (e.g. `/matrix/mautrix-signal/bridge/registration.yaml`), register it manually by sending the contents to the admin room, prefixed with `!admin appservices register` and wrapped in a fenced code block:"
  191. msgstr ""
  192. #: ../../../docs/configuring-playbook-tuwunel.md:244
  193. msgid "Registrations stored this way are persisted in the database and survive restarts. Re-running the command with the same `id` replaces the existing entry. See [Application services](https://matrix-construct.github.io/tuwunel/appservices.html) for the full reference and admin commands."
  194. msgstr ""
  195. #: ../../../docs/configuring-playbook-tuwunel.md:246
  196. msgid "Migrating from conduwuit"
  197. msgstr ""
  198. #: ../../../docs/configuring-playbook-tuwunel.md:248
  199. msgid "Tuwunel is a \"binary swap\" for conduwuit; it reads conduwuit's RocksDB layout directly, so migration is a data move, not an export/import."
  200. msgstr ""
  201. #: ../../../docs/configuring-playbook-tuwunel.md:250
  202. msgid "Set `matrix_homeserver_implementation: tuwunel` on `vars.yml` and remove any `matrix_conduwuit_*` overrides."
  203. msgstr ""
  204. #: ../../../docs/configuring-playbook-tuwunel.md:251
  205. msgid "Run a full installation so that the new service is created and the old one removed (e.g. `just setup-all`)."
  206. msgstr ""
  207. #: ../../../docs/configuring-playbook-tuwunel.md:252
  208. msgid "Run `just run-tags tuwunel-migrate-from-conduwuit`."
  209. msgstr ""
  210. #: ../../../docs/configuring-playbook-tuwunel.md:254
  211. msgid "The migration stops `matrix-conduwuit.service`, copies `/matrix/conduwuit` into `/matrix/tuwunel`, renames the config file, and starts `matrix-tuwunel.service`. The freshly generated tuwunel data directory is preserved alongside as `/matrix/tuwunel_old` until you remove it manually."
  212. msgstr ""
  213. #: ../../../docs/configuring-playbook-tuwunel.md:257
  214. msgid "Migrating from any other Conduit derivative (Conduit itself, Continuwuity, or any other fork) is **not supported** and will corrupt your database. All Conduit forks share the same linear database version with no awareness of each other; switching between them produces unrecoverable damage. See the [upstream migration table](https://matrix-construct.github.io/tuwunel/#migrating-to-tuwunel)."
  215. msgstr ""
  216. #: ../../../docs/configuring-playbook-tuwunel.md:259
  217. msgid "Troubleshooting"
  218. msgstr ""
  219. #: ../../../docs/configuring-playbook-tuwunel.md:261
  220. msgid "As with all other services, the logs are available via [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html):"
  221. msgstr ""
  222. #: ../../../docs/configuring-playbook-tuwunel.md:267
  223. msgid "Logging verbosity is controlled by `matrix_tuwunel_config_log` in [`tracing-subscriber` env-filter syntax](https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html). The default (`info,state_res=warn`) is reasonable for production; for debugging, try `debug` or scope it tighter, e.g. `info,tuwunel_service::sending=debug`."
  224. msgstr ""
  225. #: ../../../docs/configuring-playbook-tuwunel.md:269
  226. msgid "For RocksDB-level issues, online backups, and offline backup procedures, see the [Tuwunel maintenance guide](https://matrix-construct.github.io/tuwunel/maintenance.html). For protocol-compliance state across MSCs, the spec, and Complement, the project's [compliance dashboard](https://matrix-construct.github.io/tuwunel/development/compliance.html) is the authoritative tracker."
  227. msgstr ""