Compare commits

...

6 Commits

Author SHA1 Message Date
github-actions[bot] 2d5b5ff7ef Automatic translations update (#5206)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-07 14:04:08 +00:00
Slavi Pantaleev 8c87f68d5b matrix-tuwunel: adjust SPDX year ranges to 2025 - 2026
Files in this role were ported from matrix-continuwuity (which carries
2025 attribution), so the year range should reflect that the underlying
content predates 2026.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/5200.
2026-05-07 17:01:55 +03:00
Catalan Lover 4af35777b3 Update Draupnir from 3.0.0 to 3.1.0 and introduce Zero Touch Deployment to mdad. (#5205) 2026-05-07 16:59:53 +03:00
github-actions[bot] d6a1679cad Automatic translations update 2026-05-07 14:55:32 +03:00
Slavi Pantaleev 2b082eea26 Attribute Tuwunel's status as the conduwuit successor
The former conduwuit maintainer (@x86pup, formerly @girlbossceo)
clarified in the PR thread that they endorse Tuwunel as conduwuit's
successor, and the archived conduwuit repo's README points there too.
Update the migration section in the conduwuit doc and the Tuwunel
CHANGELOG entry to reflect this with attribution.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/5200.
2026-05-07 14:15:11 +03:00
renovate[bot] 1846f7be27 Update dependency sable to v1.15.2-0 2026-05-07 13:56:37 +03:00
47 changed files with 4208 additions and 3405 deletions
+1 -1
View File
@@ -4,7 +4,7 @@
Thanks to [Jason Volk](https://github.com/jevolk), the playbook now supports the [Tuwunel](./docs/configuring-playbook-tuwunel.md) homeserver as an optional alternative to Synapse.
Tuwunel is a fork of [conduwuit](./docs/configuring-playbook-conduwuit.md) written in Rust. Like [Continuwuity](./docs/configuring-playbook-continuwuity.md), it continues development on top of conduwuit's database format.
Tuwunel is a fork of [conduwuit](./docs/configuring-playbook-conduwuit.md) written in Rust. The former conduwuit maintainer [endorses Tuwunel as conduwuit's successor](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/5200#issuecomment-4396211185). Like [Continuwuity](./docs/configuring-playbook-continuwuity.md), Tuwunel continues development on top of conduwuit's database format.
Existing installations do **not** need to be updated. **Synapse is still the default homeserver implementation** installed by the playbook.
@@ -1,4 +1,5 @@
<!--
SPDX-FileCopyrightText: 2024 - 2026 Catalan Lover <catalanlover@protonmail.com>
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 MDAD project contributors
@@ -13,34 +14,54 @@ Appservice mode can be used together with the regular [Draupnir bot](configuring
## Draupnir Appservice mode compared to Draupnir bot mode
The administrative functions for managing the appservice are alpha quality and very limited. However, the experience of using an appservice-provisioned Draupnir is on par with the experience of using Draupnir from bot mode except in the case of avatar customisation as described later on in this document.
The administrative functions for managing the appservice are alpha quality and very limited. However, the experience of using an appservice-provisioned Draupnir is on par with the experience of using Draupnir from bot mode.
Draupnir for all is the way to go if you need more than 1 Draupnir instance, but you don't need access to Synapse Admin features as they are not accessible through Draupnir for All (Even though the commands do show up in help).
Draupnir for all is the way to go if you need more than 1 Draupnir instance, but you don't need access to Synapse Admin features as they are not accessible through Draupnir for All.
Draupnir for all in the playbook is rate-limit-exempt automatically as its appservice configuration file does not specify any rate limits.
Normal Draupnir does come with the benefit of access to Synapse Admin features. You are also able to more easily customise your normal Draupnir than D4A as D4A even on the branch with the Avatar command (To be Upstreamed to Mainline Draupnir) that command is clunky as it requires the use of things like Element Web devtools. In normal Draupnir this is a quick operation where you login to Draupnir with a normal client and set Avatar and Display name normally.
Normal Draupnir does come with the benefit of access to Synapse Admin features. You are also able to more easily customise your normal Draupnir than D4A as the avatar command is clunky as it requires the use of things like Element Web devtools. In normal Draupnir this can be done while logged in to the Draupnir account with a normal client and set Avatar and Display name normally.
Draupnir for all does not support external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account.
Draupnir for all only has limited support for external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account.
## Prerequisites
### Create a main management room
### Prerequisites for Zero Touch Deployment (recommended)
The playbook does not create a management room for your Main Draupnir. You **need to create the room manually** before setting up the bot.
As of Draupnir 3.1.0, Zero Touch Deployment of Draupnir Appservice Mode (Draupnir for all) requires you to supply the following:
- MXID of the first person who gets invited to the admin room that the bot creates for you.
That is all. The appservice manages everything on its own after you provide it with an MXID to invite.
If proceeding with Zero Touch Deployment, skip ahead to [Adjusting the playbook configuration](#adjusting-the-playbook-configuration).
### Create an admin room (optional)
The playbook does not create an admin room for your Draupnir, but the appservice itself can do this for you. Alternatively, you **can create the room manually** before setting up the bot.
Note that the room must be unencrypted.
The management room has to be given an alias, and your bot has to be invited to the room.
The admin room has to be given an alias, and your bot has to be invited to the room.
This management room is used to control who has access to your D4A deployment. The room stores this data inside of the control room state so your bot must have sufficient powerlevel to send custom state events. This is default 50 or moderator as Element clients call this powerlevel.
This admin room is used to control who has access to your D4A deployment. The room stores this data in the control room state, so your bot must have sufficient power level to send custom state events. This is `50` by default (moderator, as Element clients call this power level).
> [!WARNING]
> Anyone in this room can control the bot so it is important that you only invite trusted users to this room.
## Adjusting the playbook configuration
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ALIAS_HERE`.
When using Zero Touch Deployment, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `INITIAL_MANAGER_MXID_HERE` with the MXID of the user who should be invited to the admin room first.
```yaml
matrix_appservice_draupnir_for_all_enabled: true
matrix_appservice_draupnir_for_all_zero_touch_deploy: true
matrix_appservice_draupnir_for_all_config_initialManager: "INITIAL_MANAGER_MXID_HERE"
```
If opting out of Zero Touch Deployment, use the following configuration block instead. Make sure to replace `MANAGEMENT_ROOM_ALIAS_HERE` with the alias of the admin room you have created earlier.
```yaml
matrix_appservice_draupnir_for_all_enabled: true
@@ -103,20 +124,26 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
## Usage
If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com` you have successfully installed Draupnir for All and can now start using it.
If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com`, you have successfully installed Draupnir for All and can now start using it.
The installation of Draupnir for all in this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode.
If using Zero Touch Deployment, the flow is reversed and the success signal is the initial manager account being invited to the admin room.
Draupnir for all installation via this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode, except that protections requiring homeserver admin access are not available, and the config file is shared between all bots so legacy protections like wordlist share a single global config.
### Granting Users the ability to use D4A
Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recommendation. Using the chat is recommended.
The bot requires a powerlevel of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297))
The bot requires a power level of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297).) This issue is largely mitigated by the Zero Touch Deployment workflows introduced in Draupnir 3.1.0.
To allow users or whole homeservers you type /plain !admin allow `target` and target can be either a MXID or a wildcard like `@*:example.com` to allow all users on example.com to register. We use /plain to force the client to not attempt to mess with this command as it can break Wildcard commands especially.
To allow users or whole homeservers you type /plain !admin allow `target` and target can be either a MXID or a wildcard like `@*:example.com` to allow all users on example.com to provision a bot. We use /plain to force the client to not attempt to mess with this command as it can break Wildcard commands especially.
### How to provision a D4A once you are allowed to
To provision a D4A, you need to start a chat with `@draupnir-main:example.com`. The bot will reject this invite and you will shortly get invited to the Draupnir control room for your newly provisioned Draupnir. From here its just a normal Draupnir experience.
Once someone is allowed to provision a bot, simply provision them one with `!admin provision MXID`.
Congratulations if you made it all the way here because you now have a fully working Draupnir for all deployment.
Self-service provisioning is disabled as a security measure because it is currently bugged. Force-provisioning (with `!admin provision`) bypasses this disabled status.
Note that you should always make sure there is an allow entry matching whoever is provisioned, because once self-service is fixed, the bot of anyone who is not allowed to provision a bot will refuse to start.
Congratulations if you made it all the way here, because you now have a fully working Draupnir for all deployment.
+48 -9
View File
@@ -1,4 +1,5 @@
<!--
SPDX-FileCopyrightText: 2023 - 2026 Catalan Lover <catalanlover@protonmail.com>
SPDX-FileCopyrightText: 2023 - 2025 MDAD project contributors
SPDX-FileCopyrightText: 2023 Kim Brose
SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
@@ -19,7 +20,17 @@ If your migrating from [Mjolnir](configuring-playbook-bot-mjolnir.md), skip to [
## Prerequisites
### Create a management room
### Prerequisites for Zero Touch Deployment (recommended)
As of Draupnir 3.1.0, Zero Touch Deployment of Draupnir bot mode requires you to supply the following:
- MXID of the first person who gets invited to the management room that the bot creates for you.
- A permanent access token for authentication. Instructions for obtaining one can be found at [obtain an access token via curl](obtaining-access-tokens.md#obtain-an-access-token-via-curl).
- A user account for Draupnir.
Zero Touch Deployment is the officially preferred installation method for new deployments of Draupnir as of 3.1.0.
### Create a management room (optional)
Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room.
@@ -28,6 +39,8 @@ Using your own account, create a new invite only room that you will use to manag
It is possible to make the management room encrypted (E2EE). If doing so, then you need to enable the native E2EE support (see [below](#native-e2ee-support)).
E2EE support for the management room is mutually exclusive with Zero Touch Deployment of Draupnir.
Once you have created the room you need to copy the room ID so you can specify it on your `inventory/host_vars/matrix.example.com/vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking "Advanced". The room ID will look something like `!qporfwt:example.com`.
## End-to-End Encryption support
@@ -63,7 +76,25 @@ matrix_bot_draupnir_config_accessToken: "CLEAN_ACCESS_TOKEN_HERE"
## Adjusting the playbook configuration
To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created earlier.
### Configuration for Zero Touch Deployment (recommended)
To enable the bot using Zero Touch Deployment, add the following configuration to your `vars.yml` file. Make sure to replace `INITIAL_MANAGER_MXID_HERE` with the MXID of the user who should be invited to the management room first, and `CLEAN_ACCESS_TOKEN_HERE` with the access token you obtained.
```yaml
# Enable Draupnir
matrix_bot_draupnir_enabled: true
matrix_bot_draupnir_zero_touch_deploy: true
matrix_bot_draupnir_config_initialManager: "INITIAL_MANAGER_MXID_HERE"
# Access token which the bot will use for logging in.
matrix_bot_draupnir_config_accessToken: "CLEAN_ACCESS_TOKEN_HERE"
```
### Configuration without Zero Touch Deployment
If you'd prefer to have the bot manage its own login at the cost of having to create the management room manually, you can use native login with the configuration block below. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the ID of the management room you have created earlier.
```yaml
# Enable Draupnir
@@ -90,7 +121,7 @@ This is due to the conditional restart logic not being able to reliably tell whe
Conditional restarts work correctly for all tags when running only one of these two operating modes.
### Create and invite the bot to the management room
### Create and invite the bot to the management room (only when using native login without Zero Touch Deployment)
Before proceeding to the next step, run the playbook with the following command to create the bot user.
@@ -102,6 +133,12 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
Then, invite the bot (`@bot.draupnir:example.com`) to its management room which you have created earlier.
### Creating a user account for the bot (when using Zero Touch Deployment)
Since Zero Touch Deployment is not validated with native login, you will need to create the user account manually.
Refer to [registering users](registering-users.md) for documentation on how to configure the user account.
### Make sure the account is free from rate limiting (optional, recommended)
If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a highly recommended step. If you do not configure it, Draupnir performance will be degraded.**
@@ -114,7 +151,7 @@ The APIs can also be accessed via [Ketesa](https://github.com/etkecc/ketesa), a
#### Add the configuration
To expose the APIs publicly, add the following configuration to your `vars.yml` file:
This is automatically done if Ketesa is enabled. Otherwise, to expose the APIs publicly, add the following configuration to your `vars.yml` file:
```yaml
matrix_synapse_container_labels_public_client_synapse_admin_api_enabled: true
@@ -140,6 +177,7 @@ curl --header "Authorization: Bearer ADMIN_ACCESS_TOKEN_HERE" -X POST https://ma
```
**Notes**:
- This does not work on outdated Windows 10 as curl is not available there.
- Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally.
@@ -165,13 +203,14 @@ matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled: true
matrix_bot_draupnir_admin_api_enabled: true
```
These protections need to be manually activated and consulting the [enabling protections](#enabling-built-in-protections) guide can be helpful or consulting upstream documentation.
These protections need to be manually activated. Consulting the [enabling protections](#enabling-built-in-protections) guide and/or upstream documentation can be helpful.
<!--
NOTE: this is unsupported by the playbook due to the admin API being inaccessible from containers currently.
The other method polls a Synapse Admin API endpoint, hence it is available only if using Synapse and if the Draupnir user is an admin. To enable it, set `pollReports: true` in your `vars.yml` file as below:
The other method polls an Synapse Admin API endpoint, hence it is available only if using Synapse and if the Draupnir user is an admin (see [above](#register-the-bot-account)). To enable it, set `pollReports: true` on `vars.yml` file as below.
-->
```yaml
matrix_bot_draupnir_configuration_extension_yaml: |
pollReports: true
```
### Extending the configuration
+1 -1
View File
@@ -31,7 +31,7 @@ systemctl disable --now matrix-conduwuit.service
## Migrating to Tuwunel
[Tuwunel](configuring-playbook-tuwunel.md) is a fork of conduwuit which reads its database directly, so migration is possible. Please refer to [this section](./configuring-playbook-tuwunel.md#migrating-from-conduwuit) for details.
[Tuwunel](configuring-playbook-tuwunel.md) is a fork of conduwuit, [endorsed as conduwuit's successor](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/5200#issuecomment-4396211185) by the former conduwuit maintainer. It reads conduwuit's database directly, so migration is possible. Please refer to [this section](./configuring-playbook-tuwunel.md#migrating-from-conduwuit) for details.
## Migrating to Continuwuity
@@ -163,7 +163,7 @@ msgid "Granting Users the ability to use D4A"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:97
msgid "Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recomendation. Using the chat is recomended."
msgid "Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recomendation. Using the chat is recommended."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:99
@@ -162,7 +162,7 @@ msgid "Granting Users the ability to use D4A"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:97
msgid "Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recomendation. Using the chat is recomended."
msgid "Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recomendation. Using the chat is recommended."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:99
File diff suppressed because it is too large Load Diff
+54 -30
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-03 11:59+0100\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -188,6 +188,18 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-continuwuity.md)"
msgstr ""
#: ../../../README.md:0
msgid "[Tuwunel](https://matrix-construct.github.io/tuwunel/)"
msgstr ""
#: ../../../README.md:0
msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Tuwunel is the official successor to conduwuit."
msgstr ""
#: ../../../README.md:0
msgid "[Link](docs/configuring-playbook-tuwunel.md)"
msgstr ""
#: ../../../README.md:0
msgid "[Dendrite](https://github.com/element-hq/dendrite)"
msgstr ""
@@ -200,11 +212,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-dendrite.md)"
msgstr ""
#: ../../../README.md:58
#: ../../../README.md:59
msgid "Clients"
msgstr ""
#: ../../../README.md:60
#: ../../../README.md:61
msgid "Web clients for Matrix that you can host on your own domains."
msgstr ""
@@ -276,11 +288,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-client-fluffychat-web.md)"
msgstr ""
#: ../../../README.md:71
#: ../../../README.md:72
msgid "Server Components"
msgstr ""
#: ../../../README.md:73
#: ../../../README.md:74
msgid "Services that run on the server to make the various parts of your installation work."
msgstr ""
@@ -368,11 +380,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-matrix-rtc.md)"
msgstr ""
#: ../../../README.md:85
#: ../../../README.md:86
msgid "Authentication"
msgstr ""
#: ../../../README.md:87
#: ../../../README.md:88
msgid "Extend and modify how users are authenticated on your homeserver."
msgstr ""
@@ -460,11 +472,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-synapse-simple-antispam.md)"
msgstr ""
#: ../../../README.md:99
#: ../../../README.md:100
msgid "File Storage"
msgstr ""
#: ../../../README.md:101
#: ../../../README.md:102
msgid "Use alternative file storage to the default `media_store` folder."
msgstr ""
@@ -500,11 +512,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-matrix-media-repo.md)"
msgstr ""
#: ../../../README.md:109
#: ../../../README.md:110
msgid "Bridges"
msgstr ""
#: ../../../README.md:111
#: ../../../README.md:112
msgid "Bridges can be used to connect your Matrix installation with third-party communication networks."
msgstr ""
@@ -748,6 +760,18 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-bridge-heisenbridge.md)"
msgstr ""
#: ../../../README.md:0
msgid "[meshtastic-matrix-relay](https://github.com/jeremiah-k/meshtastic-matrix-relay)"
msgstr ""
#: ../../../README.md:0
msgid "Bridge to [Meshtastic](https://meshtastic.org/) mesh networks"
msgstr ""
#: ../../../README.md:0
msgid "[Link](docs/configuring-playbook-bridge-meshtastic-relay.md)"
msgstr ""
#: ../../../README.md:0
msgid "[mx-puppet-groupme](https://gitlab.com/xangelix-pub/matrix/mx-puppet-groupme)"
msgstr ""
@@ -784,11 +808,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-bridge-postmoogle.md)"
msgstr ""
#: ../../../README.md:139
#: ../../../README.md:141
msgid "Bots"
msgstr ""
#: ../../../README.md:141
#: ../../../README.md:143
msgid "Bots provide various additional functionality to your installation."
msgstr ""
@@ -888,11 +912,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-bot-buscarron.md)"
msgstr ""
#: ../../../README.md:154
#: ../../../README.md:156
msgid "Administration"
msgstr ""
#: ../../../README.md:156
#: ../../../README.md:158
msgid "Services that help you in administrating and monitoring your Matrix installation."
msgstr ""
@@ -980,11 +1004,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-synapse-usage-exporter.md)"
msgstr ""
#: ../../../README.md:168
#: ../../../README.md:170
msgid "Misc"
msgstr ""
#: ../../../README.md:170
#: ../../../README.md:172
msgid "Various services that don't fit any other categories."
msgstr ""
@@ -1108,54 +1132,54 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-element-call.md)"
msgstr ""
#: ../../../README.md:185
#: ../../../README.md:187
msgid "🆕 Changes"
msgstr ""
#: ../../../README.md:187
#: ../../../README.md:189
msgid "This playbook evolves over time, sometimes with backward-incompatible changes."
msgstr ""
#: ../../../README.md:189
#: ../../../README.md:191
msgid "When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up with what's new."
msgstr ""
#: ../../../README.md:191
#: ../../../README.md:193
msgid "🆘 Support"
msgstr ""
#: ../../../README.md:193
#: ../../../README.md:195
msgid "Matrix room: [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)"
msgstr ""
#: ../../../README.md:195
#: ../../../README.md:197
msgid "IRC channel: `#matrix-docker-ansible-deploy` on the [Libera Chat](https://libera.chat/) IRC network (irc.libera.chat:6697)"
msgstr ""
#: ../../../README.md:197
#: ../../../README.md:199
msgid "GitHub issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues)"
msgstr ""
#: ../../../README.md:199
#: ../../../README.md:201
msgid "🌐 Translation"
msgstr ""
#: ../../../README.md:201
#: ../../../README.md:203
msgid "See the [i18n/README.md](i18n/README.md) file for more information about translation."
msgstr ""
#: ../../../README.md:203
#: ../../../README.md:205
msgid "Translations are still work in progress."
msgstr ""
#: ../../../README.md:205
#: ../../../README.md:207
msgid "🤝 Related"
msgstr ""
#: ../../../README.md:207
#: ../../../README.md:209
msgid "You may also be interested in [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) - another Ansible playbook for self-hosting non-Matrix services (see its [List of supported services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md))."
msgstr ""
#: ../../../README.md:209
#: ../../../README.md:211
msgid "mash-playbook also makes use of [Traefik](./docs/configuring-playbook-traefik.md) as its reverse-proxy, so with minor [interoperability adjustments](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/interoperability.md), you can make matrix-docker-ansible-deploy and mash-playbook co-exist and host Matrix and non-Matrix services on the same server."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 10:32+0000\n"
"POT-Creation-Date: 2026-05-07 14:00+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,167 +16,215 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:8
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:9
msgid "Setting up Draupnir for All/D4A (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:10
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:11
msgid "The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation tool for you in appservice mode."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:12
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:13
msgid "Appservice mode can be used together with the regular [Draupnir bot](configuring-playbook-bot-draupnir.md) or independently. Details about the differences between the 2 modes are described below."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:14
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:15
msgid "Draupnir Appservice mode compared to Draupnir bot mode"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:16
msgid "The administrative functions for managing the appservice are alpha quality and very limited. However, the experience of using an appservice-provisioned Draupnir is on par with the experience of using Draupnir from bot mode except in the case of avatar customisation as described later on in this document."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:17
msgid "The administrative functions for managing the appservice are alpha quality and very limited. However, the experience of using an appservice-provisioned Draupnir is on par with the experience of using Draupnir from bot mode."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:18
msgid "Draupnir for all is the way to go if you need more than 1 Draupnir instance, but you don't need access to Synapse Admin features as they are not accessible through Draupnir for All (Even though the commands do show up in help)."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:19
msgid "Draupnir for all is the way to go if you need more than 1 Draupnir instance, but you don't need access to Synapse Admin features as they are not accessible through Draupnir for All."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:20
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:21
msgid "Draupnir for all in the playbook is rate-limit-exempt automatically as its appservice configuration file does not specify any rate limits."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:22
msgid "Normal Draupnir does come with the benefit of access to Synapse Admin features. You are also able to more easily customise your normal Draupnir than D4A as D4A even on the branch with the Avatar command (To be Upstreamed to Mainline Draupnir) that command is clunky as it requires the use of things like Element Web devtools. In normal Draupnir this is a quick operation where you login to Draupnir with a normal client and set Avatar and Display name normally."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:23
msgid "Normal Draupnir does come with the benefit of access to Synapse Admin features. You are also able to more easily customise your normal Draupnir than D4A as the avatar command is clunky as it requires the use of things like Element Web devtools. In normal Draupnir this can be done while logged in to the Draupnir account with a normal client and set Avatar and Display name normally."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:24
msgid "Draupnir for all does not support external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:25
msgid "Draupnir for all only has limited support for external tooling like [MRU](https://mru.rory.gay) as it can't access Draupnir's user account."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:26
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:27
msgid "Prerequisites"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:28
msgid "Create a main management room"
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:29
msgid "Prerequisites for Zero Touch Deployment (recommended)"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:30
msgid "The playbook does not create a management room for your Main Draupnir. You **need to create the room manually** before setting up the bot."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:31
msgid "As of Draupnir 3.1.0, Zero Touch Deployment of Draupnir Appservice Mode (Draupnir for all) requires you to supply the following:"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:32
msgid "Note that the room must be unencrypted."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:33
msgid "MXID of the first person who gets invited to the admin room that the bot creates for you."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:34
msgid "The management room has to be given an alias, and your bot has to be invited to the room."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:35
msgid "That is all. The appservice manages everything on its own after you provide it with an MXID to invite."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:36
msgid "This management room is used to control who has access to your D4A deployment. The room stores this data inside of the control room state so your bot must have sufficient powerlevel to send custom state events. This is default 50 or moderator as Element clients call this powerlevel."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:37
msgid "If proceeding with Zero Touch Deployment, skip ahead to [Adjusting the playbook configuration](#adjusting-the-playbook-configuration)."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:38
msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:39
msgid "Create an admin room (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:41
msgid "Adjusting the playbook configuration"
msgid "The playbook does not create an admin room for your Draupnir, but the appservice itself can do this for you. Alternatively, you **can create the room manually** before setting up the bot."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:43
msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ALIAS_HERE`."
msgid "Note that the room must be unencrypted."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:51
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:45
msgid "The admin room has to be given an alias, and your bot has to be invited to the room."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:47
msgid "This admin room is used to control who has access to your D4A deployment. The room stores this data in the control room state, so your bot must have sufficient power level to send custom state events. This is `50` by default (moderator, as Element clients call this power level)."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:49
msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:52
msgid "Adjusting the playbook configuration"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:54
msgid "When using Zero Touch Deployment, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `INITIAL_MANAGER_MXID_HERE` with the MXID of the user who should be invited to the admin room first."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:64
msgid "If opting out of Zero Touch Deployment, use the following configuration block instead. Make sure to replace `MANAGEMENT_ROOM_ALIAS_HERE` with the alias of the admin room you have created earlier."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:72
msgid "Running both bot mode and appservice mode"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:74
msgid "When running both [bot mode](./configuring-playbook-bot-draupnir.md) and appservice mode, the playbook will force-restart the bot if running a non-release tag like `latest` or `main` or a development build. This is due to the conditional restart logic not being able to reliably tell when an update happened."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:78
msgid "Conditional restarts work correctly for all tags when running only one of these two operating modes."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:80
msgid "Extending the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:53
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:82
msgid "There are some additional things you may wish to configure about the component."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:55
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:84
msgid "Take a look at:"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:57
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:86
msgid "`roles/custom/matrix-appservice-draupnir-for-all/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_draupnir_for_all_configuration_extension_yaml` variable"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:59
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:88
msgid "For example, to change Draupnir's `protectAllJoinedRooms` option to `true`, add the following configuration to your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:73
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:102
msgid "You can refer to the upstream [documentation](https://github.com/the-draupnir-project/Draupnir) for more configuration documentation."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:75
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:90
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:104
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:119
msgid "**Notes**:"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:77
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:106
msgid "The playbook ships a full copy of the example config that does transfer to provisioned Draupnirs in the production-bots.yaml.j2 file in the template directory of the role."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:79
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:108
msgid "Config extension does not affect the appservices config as this config is not extensible in current Draupnir anyway. It instead touches the config passed to the Draupnirs that your Appservice creates. So the example above (`protectAllJoinedRooms: true`) makes all provisioned Draupnirs protect all joined rooms."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:81
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:110
msgid "Installing"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:83
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:112
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:92
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:121
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:94
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:123
msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:96
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:125
msgid "Usage"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:98
msgid "If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com` you have successfully installed Draupnir for All and can now start using it."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:127
msgid "If you made it through all the steps above and your main control room was joined by a user called `@draupnir-main:example.com`, you have successfully installed Draupnir for All and can now start using it."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:100
msgid "The installation of Draupnir for all in this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:129
msgid "If using Zero Touch Deployment, the flow is reversed and the success signal is the initial manager account being invited to the admin room."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:102
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:131
msgid "Draupnir for all installation via this playbook is very much Alpha quality. Usage-wise, Draupnir for all is almost identical to Draupnir bot mode, except that protections requiring homeserver admin access are not available, and the config file is shared between all bots so legacy protections like wordlist share a single global config."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:133
msgid "Granting Users the ability to use D4A"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:104
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:135
msgid "Draupnir for all includes several security measures like that it only allows users that are on its allow list to ask for a bot. To add a user to this list we have 2 primary options. Using the chat to tell Draupnir to do this for us or if you want to automatically do it by sending `m.policy.rule.user` events that target the subject you want to allow provisioning for with the `org.matrix.mjolnir.allow` recommendation. Using the chat is recommended."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:106
msgid "The bot requires a powerlevel of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297))"
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:137
msgid "The bot requires a power level of 50 in the management room to control who is allowed to use the bot. The bot does currently not say anything if this is true or false. (This is considered a bug and is documented in issue [#297](https://github.com/the-draupnir-project/Draupnir/issues/297).) This issue is largely mitigated by the Zero Touch Deployment workflows introduced in Draupnir 3.1.0."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:108
msgid "To allow users or whole homeservers you type /plain !admin allow `target` and target can be either a MXID or a wildcard like `@*:example.com` to allow all users on example.com to register. We use /plain to force the client to not attempt to mess with this command as it can break Wildcard commands especially."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:139
msgid "To allow users or whole homeservers you type /plain !admin allow `target` and target can be either a MXID or a wildcard like `@*:example.com` to allow all users on example.com to provision a bot. We use /plain to force the client to not attempt to mess with this command as it can break Wildcard commands especially."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:110
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:141
msgid "How to provision a D4A once you are allowed to"
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:112
msgid "To provision a D4A, you need to start a chat with `@draupnir-main:example.com`. The bot will reject this invite and you will shortly get invited to the Draupnir control room for your newly provisioned Draupnir. From here its just a normal Draupnir experience."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:143
msgid "Once someone is allowed to provision a bot, simply provision them one with `!admin provision MXID`."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:114
msgid "Congratulations if you made it all the way here because you now have a fully working Draupnir for all deployment."
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:145
msgid "Self-service provisioning is disabled as a security measure because it is currently bugged. Force-provisioning (with `!admin provision`) bypasses this disabled status."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:147
msgid "Note that you should always make sure there is an allow entry matching whoever is provisioned, because once self-service is fixed, the bot of anyone who is not allowed to provision a bot will refuse to start."
msgstr ""
#: ../../../docs/configuring-playbook-appservice-draupnir-for-all.md:149
msgid "Congratulations if you made it all the way here, because you now have a fully working Draupnir for all deployment."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-03 11:56+0100\n"
"POT-Creation-Date: 2026-05-07 14:00+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -16,419 +16,487 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../../docs/configuring-playbook-bot-draupnir.md:10
#: ../../../docs/configuring-playbook-bot-draupnir.md:11
msgid "Setting up Draupnir (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:12
#: ../../../docs/configuring-playbook-bot-draupnir.md:13
msgid "The playbook can install and configure the [Draupnir](https://github.com/the-draupnir-project/Draupnir) moderation bot for you."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:14
#: ../../../docs/configuring-playbook-bot-draupnir.md:15
msgid "See the project's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) to learn what it does and why it might be useful to you."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:16
#: ../../../docs/configuring-playbook-bot-draupnir.md:17
msgid "This documentation page is about installing Draupnir in bot mode. As an alternative, you can run a multi-instance Draupnir deployment by installing [Draupnir in appservice mode](./configuring-playbook-appservice-draupnir-for-all.md) (called Draupnir-for-all) instead."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:18
#: ../../../docs/configuring-playbook-bot-draupnir.md:19
msgid "If your migrating from [Mjolnir](configuring-playbook-bot-mjolnir.md), skip to [this section](#migrating-from-mjolnir-only-required-if-migrating)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:20
#: ../../../docs/configuring-playbook-bot-draupnir.md:21
msgid "Prerequisites"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:22
msgid "Create a management room"
#: ../../../docs/configuring-playbook-bot-draupnir.md:23
msgid "Prerequisites for Zero Touch Deployment (recommended)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:24
msgid "Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room."
#: ../../../docs/configuring-playbook-bot-draupnir.md:25
msgid "As of Draupnir 3.1.0, Zero Touch Deployment of Draupnir bot mode requires you to supply the following:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:26
msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room."
#: ../../../docs/configuring-playbook-bot-draupnir.md:27
msgid "MXID of the first person who gets invited to the management room that the bot creates for you."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:28
msgid "A permanent access token for authentication. Instructions for obtaining one can be found at [obtain an access token via curl](obtaining-access-tokens.md#obtain-an-access-token-via-curl)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:29
msgid "It is possible to make the management room encrypted (E2EE). If doing so, then you need to enable the native E2EE support (see [below](#native-e2ee-support))."
msgid "A user account for Draupnir."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:31
msgid "Once you have created the room you need to copy the room ID so you can specify it on your `inventory/host_vars/matrix.example.com/vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking \"Advanced\". The room ID will look something like `!qporfwt:example.com`."
msgid "Zero Touch Deployment is the officially preferred installation method for new deployments of Draupnir as of 3.1.0."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:33
msgid "End-to-End Encryption support"
msgid "Create a management room (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:35
msgid "Decide whether you want to support having an encrypted management room or not. Draupnir can still protect encrypted rooms without encryption support enabled."
msgid "Using your own account, create a new invite only room that you will use to manage the bot. This is the room where you will see the status of the bot and where you will send commands to the bot, such as the command to ban a user from another room."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:37
msgid "[!WARNING] Anyone in this room can control the bot so it is important that you only invite trusted users to this room."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:40
msgid "It is possible to make the management room encrypted (E2EE). If doing so, then you need to enable the native E2EE support (see [below](#native-e2ee-support))."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:42
msgid "E2EE support for the management room is mutually exclusive with Zero Touch Deployment of Draupnir."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:44
msgid "Once you have created the room you need to copy the room ID so you can specify it on your `inventory/host_vars/matrix.example.com/vars.yml` file. In Element Web you can check the ID by going to the room's settings and clicking \"Advanced\". The room ID will look something like `!qporfwt:example.com`."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:46
msgid "End-to-End Encryption support"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:48
msgid "Decide whether you want to support having an encrypted management room or not. Draupnir can still protect encrypted rooms without encryption support enabled."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:50
msgid "Refer to Draupnir's [documentation](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#protecting-encrypted-rooms) for more details about why you might want to care about encryption support for protected rooms."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:39
#: ../../../docs/configuring-playbook-bot-draupnir.md:52
msgid "Disable Pantalaimon for Draupnir (since v2.0.0; optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:41
#: ../../../docs/configuring-playbook-bot-draupnir.md:54
msgid "It is known that running Draupnir along with Pantalaimon breaks all workflows that involve answering prompts with reactions."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:43
#: ../../../docs/configuring-playbook-bot-draupnir.md:56
msgid "If you are updating Draupnir from v1.x.x and have enabled Pantalaimon for it, you can disable Pantalaimon in favor of the native E2EE support. To disable Pantalaimon, remove the configuration `matrix_bot_draupnir_pantalaimon_use: true` from your `vars.yml` file."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:45
#: ../../../docs/configuring-playbook-bot-draupnir.md:58
msgid "**Note**: because the management room is still encrypted, disabling it without enabling the native E2EE support will break the management room."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:47
#: ../../../docs/configuring-playbook-bot-draupnir.md:60
msgid "Native E2EE support"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:49
#: ../../../docs/configuring-playbook-bot-draupnir.md:62
msgid "To enable the native E2EE support, you need to obtain an access token for Draupnir and set it on your `vars.yml` file."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:51
#: ../../../docs/configuring-playbook-bot-draupnir.md:64
msgid "Note that native E2EE requires a clean access token that has not touched E2EE so curl is recommended as a method to obtain it. **The access token obtained via Element Web does not work with it**. Refer to the documentation on [how to obtain an access token via curl](obtaining-access-tokens.md#obtain-an-access-token-via-curl)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:53
#: ../../../docs/configuring-playbook-bot-draupnir.md:66
msgid "To enable the native E2EE support, add the following configuration to your `vars.yml` file. Make sure to replace `CLEAN_ACCESS_TOKEN_HERE` with the access token you obtained just now."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:64
#: ../../../docs/configuring-playbook-bot-draupnir.md:77
msgid "Adjusting the playbook configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:66
msgid "To enable the bot, add the following configuration to your `vars.yml` file. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the one of the room which you have created earlier."
#: ../../../docs/configuring-playbook-bot-draupnir.md:79
msgid "Configuration for Zero Touch Deployment (recommended)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:85
msgid "Create and invite the bot to the management room"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:87
msgid "Before proceeding to the next step, run the playbook with the following command to create the bot user."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:93
msgid "**Note**: the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account."
#: ../../../docs/configuring-playbook-bot-draupnir.md:81
msgid "To enable the bot using Zero Touch Deployment, add the following configuration to your `vars.yml` file. Make sure to replace `INITIAL_MANAGER_MXID_HERE` with the MXID of the user who should be invited to the management room first, and `CLEAN_ACCESS_TOKEN_HERE` with the access token you obtained."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:95
msgid "Then, invite the bot (`@bot.draupnir:example.com`) to its management room which you have created earlier."
msgid "Configuration without Zero Touch Deployment"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:97
msgid "Make sure the account is free from rate limiting (optional, recommended)"
msgid "If you'd prefer to have the bot manage its own login at the cost of having to create the management room manually, you can use native login with the configuration block below. Make sure to replace `MANAGEMENT_ROOM_ID_HERE` with the ID of the management room you have created earlier."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:99
msgid "If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a highly recommended step. If you do not configure it, Draupnir performance will be degraded.**"
#: ../../../docs/configuring-playbook-bot-draupnir.md:116
msgid "Running both bot mode and appservice mode"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:101
msgid "This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:103
msgid "**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:105
msgid "The APIs can also be accessed via [Ketesa](https://github.com/etkecc/ketesa), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Ketesa for you. For details about it, see [this page](configuring-playbook-ketesa.md)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:107
msgid "Add the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:109
msgid "To expose the APIs publicly, add the following configuration to your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:115
msgid "Obtain an access token for admin account"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:117
msgid "Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:119
msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone."
#: ../../../docs/configuring-playbook-bot-draupnir.md:118
msgid "When running both bot mode and [appservice mode (Draupnir for all)](./configuring-playbook-appservice-draupnir-for-all.md), the playbook will force-restart the bot if running a non-release tag like `latest` or `main` or a development build. This is due to the conditional restart logic not being able to reliably tell when an update happened."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:122
msgid "Run the `curl` command"
msgid "Conditional restarts work correctly for all tags when running only one of these two operating modes."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:124
msgid "To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace:"
msgid "Create and invite the bot to the management room (only when using native login without Zero Touch Deployment)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:126
msgid "`ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account"
msgid "Before proceeding to the next step, run the playbook with the following command to create the bot user."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:127
msgid "`example.com` with your base domain"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:128
msgid "`@bot.draupnir:example.com` with the MXID of your Draupnir bot user"
#: ../../../docs/configuring-playbook-bot-draupnir.md:132
msgid "**Note**: the `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:134
#: ../../../docs/configuring-playbook-bot-draupnir.md:207
msgid "**Notes**:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:135
msgid "This does not work on outdated Windows 10 as curl is not available there."
msgid "Then, invite the bot (`@bot.draupnir:example.com`) to its management room which you have created earlier."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:136
msgid "Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally."
msgid "Creating a user account for the bot (when using Zero Touch Deployment)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:138
msgid "Abuse Reports"
msgid "Since Zero Touch Deployment is not validated with native login, you will need to create the user account manually."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:140
msgid "Draupnir can receive reports in the management room."
msgid "Refer to [registering users](registering-users.md) for documentation on how to configure the user account."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:142
msgid "The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you:"
msgid "Make sure the account is free from rate limiting (optional, recommended)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:144
msgid "If your homeserver's implementation is Synapse, you will need to prevent it from rate limiting the bot's account. **This is a highly recommended step. If you do not configure it, Draupnir performance will be degraded.**"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:146
msgid "This can be done using Synapse's [Admin APIs](https://element-hq.github.io/synapse/latest/admin_api/user_admin_api.html#override-ratelimiting-for-users). They can be accessed both externally and internally."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:148
msgid "Enabling synapse-http-antispam support"
msgid "**Note**: access to the APIs is restricted with a valid access token, so exposing them publicly should not be a real security concern. Still, doing so is not recommended for additional security. See [official Synapse reverse-proxying recommendations](https://element-hq.github.io/synapse/latest/reverse_proxy.html#synapse-administration-endpoints)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:150
msgid "Certain protections in Draupnir require the [synapse-http-antispam](https://github.com/maunium/synapse-http-antispam) module and a Synapse homeserver plus homeserver admin status to function. This module can be enabled in the playbook via setting `matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled` to `true` and making sure that Draupnir admin API access is enabled."
msgid "The APIs can also be accessed via [Ketesa](https://github.com/etkecc/ketesa), a web UI tool you can use to administrate users, rooms, media, etc. on your Matrix server. The playbook can install and configure Ketesa for you. For details about it, see [this page](configuring-playbook-ketesa.md)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:152
msgid "Add the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:154
msgid "This is automatically done if Ketesa is enabled. Otherwise, to expose the APIs publicly, add the following configuration to your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:160
msgid "These protections need to be manually activated and consulting the [enabling protections](#enabling-built-in-protections) guide can be helpful or consulting upstream documentation."
msgid "Obtain an access token for admin account"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:168
msgid "Extending the configuration"
#: ../../../docs/configuring-playbook-bot-draupnir.md:162
msgid "Manual access to Synapse's Admin APIs requires an access token for a homeserver admin account. Refer to the documentation on [how to obtain an access token](obtaining-access-tokens.md)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:170
msgid "There are some additional things you may wish to configure about the bot."
#: ../../../docs/configuring-playbook-bot-draupnir.md:164
msgid "[!WARNING] Access tokens are sensitive information. Do not include them in any bug reports, messages, or logs. Do not share the access token with anyone."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:167
msgid "Run the `curl` command"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:169
msgid "To disable rate limiting, run the following command on systems that ship curl. Before running it, make sure to replace:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:171
msgid "`ADMIN_ACCESS_TOKEN_HERE` with the access token of the admin account"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:172
msgid "Take a look at:"
msgid "`example.com` with your base domain"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:174
msgid "`roles/custom/matrix-bot-draupnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_draupnir_configuration_extension_yaml` variable"
#: ../../../docs/configuring-playbook-bot-draupnir.md:173
msgid "`@bot.draupnir:example.com` with the MXID of your Draupnir bot user"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:176
msgid "For example, to change Draupnir's `acceptInvitesFromSpace` option to `!qporfwt:example.com`, add the following configuration to your `vars.yml` file:"
#: ../../../docs/configuring-playbook-bot-draupnir.md:179
#: ../../../docs/configuring-playbook-bot-draupnir.md:254
msgid "**Notes**:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:190
msgid "Migrating from Mjolnir (Only required if migrating)"
#: ../../../docs/configuring-playbook-bot-draupnir.md:181
msgid "This does not work on outdated Windows 10 as curl is not available there."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:192
msgid "Replace your `matrix_bot_mjolnir` config with `matrix_bot_draupnir` config. Also disable Mjolnir if you're doing migration."
#: ../../../docs/configuring-playbook-bot-draupnir.md:182
msgid "Even if the APIs are not exposed to the internet, you should still be able to run the command on the homeserver locally."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:184
msgid "Abuse Reports"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:186
msgid "Draupnir can receive reports in the management room."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:188
msgid "The bot can intercept the report API endpoint of the client-server API, which requires integration with the reverse proxy in front of the homeserver. If you are using Traefik, this playbook can set this up for you:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:194
msgid "Note that Draupnir supports E2EE natively, so you can enable it instead of Pantalaimon. It is recommended to consult the instruction [here](#native-e2ee-support)."
msgid "Enabling synapse-http-antispam support"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:196
msgid "That is all you need to do due to that Draupnir can complete migration on its own."
msgid "Certain protections in Draupnir require the [synapse-http-antispam](https://github.com/maunium/synapse-http-antispam) module and a Synapse homeserver plus homeserver admin status to function. This module can be enabled in the playbook via setting `matrix_bot_draupnir_config_web_synapseHTTPAntispam_enabled` to `true` and making sure that Draupnir admin API access is enabled."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:198
msgid "Installing"
#: ../../../docs/configuring-playbook-bot-draupnir.md:206
msgid "These protections need to be manually activated. Consulting the [enabling protections](#enabling-built-in-protections) guide and/or upstream documentation can be helpful."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:200
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:209
msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:211
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:213
msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed."
#: ../../../docs/configuring-playbook-bot-draupnir.md:208
msgid "The other method polls a Synapse Admin API endpoint, hence it is available only if using Synapse and if the Draupnir user is an admin. To enable it, set `pollReports: true` in your `vars.yml` file as below:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:215
msgid "If you change the bot password (`matrix_bot_draupnir_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [Ketesa](configuring-playbook-ketesa.md) to change it, and then update `matrix_bot_draupnir_password` to let the bot know its new password."
msgid "Extending the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:217
msgid "Usage"
msgid "There are some additional things you may wish to configure about the bot."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:219
msgid "You can refer to the upstream [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) for additional ways to use and configure Draupnir and for a more detailed usage guide."
msgid "Take a look at:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:221
msgid "Below is a **non-exhaustive quick-start guide** for the impatient."
msgid "`roles/custom/matrix-bot-draupnir/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bot_draupnir_configuration_extension_yaml` variable"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:223
msgid "Making Draupnir join and protect a room"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:225
msgid "Draupnir can be told to self-join public rooms, but it's better to follow this flow which works well for all kinds of rooms:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:227
msgid "Invite the bot to the room manually ([inviting Draupnir to rooms](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#inviting-draupnir-to-rooms)). Before joining, the bot *may* ask for confirmation in the Management Room"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:229
msgid "[Give the bot permissions to do its job](#giving-draupnir-permissions-to-do-its-job)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:231
msgid "Tell it to protect the room (using the [rooms command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#using-the-draupnir-rooms-command)) by sending the following command to the Management Room: `!draupnir rooms add !qporfwt:example.com`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:233
msgid "To have Draupnir provide useful room protection, you need do to a bit more work (at least the first time around). You may wish to [Subscribe to a public policy list](#subscribing-to-a-public-policy-list), [Create your own own policy and rules](#creating-your-own-policy-lists-and-rules) and [Enabling built-in protections](#enabling-built-in-protections)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:235
msgid "Giving Draupnir permissions to do its job"
msgid "For example, to change Draupnir's `acceptInvitesFromSpace` option to `!qporfwt:example.com`, add the following configuration to your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:237
msgid "For Draupnir to do its job, you need to [give it permissions](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#giving-draupnir-permissions) in rooms it's protecting. This involves **giving it an Administrator power level**."
msgid "Migrating from Mjolnir (Only required if migrating)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:239
msgid "**We recommend setting this power level as soon as the bot joins your room** (and before you create new rules), so that it can apply rules as soon as they are available. If the bot is under-privileged, it may fail to apply protections and may not retry for a while (or until your restart it)."
msgid "Replace your `matrix_bot_mjolnir` config with `matrix_bot_draupnir` config. Also disable Mjolnir if you're doing migration."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:241
msgid "Subscribing to a public policy list"
msgid "Note that Draupnir supports E2EE natively, so you can enable it instead of Pantalaimon. It is recommended to consult the instruction [here](#native-e2ee-support)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:243
msgid "We recommend **subscribing to a public [policy list](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists)** using the [watch command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-watch-command-to-subscribe-to-policy-rooms)."
msgid "That is all you need to do due to that Draupnir can complete migration on its own."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:245
msgid "Policy lists are maintained in Matrix rooms. Popular ones maintained in the public are:"
msgid "Installing"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:247
msgid "`#community-moderation-effort-bl:neko.dev`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:248
msgid "`#huginn-muninn-active-threats:feline.support`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:250
msgid "You can tell Draupnir to subscribe to each of these by sending the following command to the Management Room: `!draupnir watch POLICY_LIST_ADDRESS_HERE` (e.g. `!draupnir watch #community-moderation-effort-bl:neko.dev`)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:252
msgid "Creating your own policy lists and rules"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:254
msgid "We also recommend **creating your own policy lists** with the [list create](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-list-create-command-to-create-a-policy-room) command."
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:256
msgid "You can do so by sending the following command to the Management Room: `!draupnir list create my-bans my-bans-bl`. This will create a policy list having a name (shortcode) of `my-bans` and stored in a public `#my-bans-bl:example.com` room on your server. As soon as you run this command, the bot will invite you to the policy list room."
msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:258
msgid "A policy list does nothing by itself, so the next step is **adding some rules to your policy list**. Policies target a so-called `entity` (one of: `user`, `room` or `server`). These entities are mentioned on the [policy lists](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists) documentation page and in the Matrix Spec [here](https://spec.matrix.org/v1.11/client-server-api/#mban-recommendation)."
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:260
msgid "The simplest and most useful entity to target is `user`. Below are a few examples using the [ban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-ban-command) and targeting users."
msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:262
msgid "To create rules, you run commands in the Management Room (**not** in the policy list room)."
msgid "If you change the bot password (`matrix_bot_draupnir_password` in your `vars.yml` file) subsequently, the bot user's credentials on the homeserver won't be updated automatically. If you'd like to change the bot user's password, use a tool like [Ketesa](configuring-playbook-ketesa.md) to change it, and then update `matrix_bot_draupnir_password` to let the bot know its new password."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:264
msgid "(ban a single user on a given homeserver): `!draupnir ban @charles:example.com my-bans Rude to others`"
msgid "Usage"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:265
msgid "(ban all users on a given homeserver by using a [wildcard](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#wildcards)): `!draupnir ban @*:example.org my-bans Spam server, all users are fake`"
#: ../../../docs/configuring-playbook-bot-draupnir.md:266
msgid "You can refer to the upstream [documentation](https://the-draupnir-project.github.io/draupnir-documentation/) for additional ways to use and configure Draupnir and for a more detailed usage guide."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:267
msgid "As a result of running these commands, you may observe:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:269
msgid "Draupnir creating `m.policy.rule.user` state events in the `#my-bans-bl:example.com` room on your server"
#: ../../../docs/configuring-playbook-bot-draupnir.md:268
msgid "Below is a **non-exhaustive quick-start guide** for the impatient."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:270
msgid "applying these rules against all rooms that Draupnir is an Administrator in"
msgid "Making Draupnir join and protect a room"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:272
msgid "You can undo bans with the [unban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-unban-command)."
msgid "Draupnir can be told to self-join public rooms, but it's better to follow this flow which works well for all kinds of rooms:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:274
msgid "Enabling built-in protections"
msgid "Invite the bot to the room manually ([inviting Draupnir to rooms](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#inviting-draupnir-to-rooms)). Before joining, the bot *may* ask for confirmation in the Management Room"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:276
msgid "You can also **turn on various built-in [protections](https://the-draupnir-project.github.io/draupnir-documentation/protections)** like `JoinWaveShortCircuitProtection` (\"If X amount of users join in Y time, set the room to invite-only\")."
msgid "[Give the bot permissions to do its job](#giving-draupnir-permissions-to-do-its-job)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:278
msgid "To **see which protections are available and which are enabled**, send a `!draupnir protections` command to the Management Room."
msgid "Tell it to protect the room (using the [rooms command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#using-the-draupnir-rooms-command)) by sending the following command to the Management Room: `!draupnir rooms add !qporfwt:example.com`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:280
msgid "To [**see the configuration options for a given protection**](https://the-draupnir-project.github.io/draupnir-documentation/protections/configuring-protections#displaying-the-protection-settings), send a `!draupnir protections show PROTECTION_NAME` (e.g. `!draupnir protections show JoinWaveShortCircuitProtection`)."
msgid "To have Draupnir provide useful room protection, you need do to a bit more work (at least the first time around). You may wish to [Subscribe to a public policy list](#subscribing-to-a-public-policy-list), [Create your own own policy and rules](#creating-your-own-policy-lists-and-rules) and [Enabling built-in protections](#enabling-built-in-protections)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:282
msgid "To [**set a specific option for a given protection**](https://the-draupnir-project.github.io/draupnir-documentation/protections/configuring-protections#changing-protection-settings), send a command like this: `!draupnir protections config set PROTECTION_NAME OPTION VALUE` (e.g. `!draupnir protections config set JoinWaveShortCircuitProtection timescaleMinutes 30`)."
msgid "Giving Draupnir permissions to do its job"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:284
msgid "To [**enable a given protection**](https://the-draupnir-project.github.io/draupnir-documentation/protections/block-invitations-on-server-protection#enabling-the-protection), send a command like this: `!draupnir protections enable PROTECTION_NAME` (e.g. `!draupnir protections enable JoinWaveShortCircuitProtection`)."
msgid "For Draupnir to do its job, you need to [give it permissions](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-protected-rooms#giving-draupnir-permissions) in rooms it's protecting. This involves **giving it an Administrator power level**."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:286
msgid "**We recommend setting this power level as soon as the bot joins your room** (and before you create new rules), so that it can apply rules as soon as they are available. If the bot is under-privileged, it may fail to apply protections and may not retry for a while (or until your restart it)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:288
msgid "Subscribing to a public policy list"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:290
msgid "We recommend **subscribing to a public [policy list](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists)** using the [watch command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-watch-command-to-subscribe-to-policy-rooms)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:292
msgid "Policy lists are maintained in Matrix rooms. Popular ones maintained in the public are:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:294
msgid "`#community-moderation-effort-bl:neko.dev`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:295
msgid "`#huginn-muninn-active-threats:feline.support`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:297
msgid "You can tell Draupnir to subscribe to each of these by sending the following command to the Management Room: `!draupnir watch POLICY_LIST_ADDRESS_HERE` (e.g. `!draupnir watch #community-moderation-effort-bl:neko.dev`)"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:299
msgid "Creating your own policy lists and rules"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:301
msgid "We also recommend **creating your own policy lists** with the [list create](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-policy-lists#using-draupnirs-list-create-command-to-create-a-policy-room) command."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:303
msgid "You can do so by sending the following command to the Management Room: `!draupnir list create my-bans my-bans-bl`. This will create a policy list having a name (shortcode) of `my-bans` and stored in a public `#my-bans-bl:example.com` room on your server. As soon as you run this command, the bot will invite you to the policy list room."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:305
msgid "A policy list does nothing by itself, so the next step is **adding some rules to your policy list**. Policies target a so-called `entity` (one of: `user`, `room` or `server`). These entities are mentioned on the [policy lists](https://the-draupnir-project.github.io/draupnir-documentation/concepts/policy-lists) documentation page and in the Matrix Spec [here](https://spec.matrix.org/v1.11/client-server-api/#mban-recommendation)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:307
msgid "The simplest and most useful entity to target is `user`. Below are a few examples using the [ban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-ban-command) and targeting users."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:309
msgid "To create rules, you run commands in the Management Room (**not** in the policy list room)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:311
msgid "(ban a single user on a given homeserver): `!draupnir ban @charles:example.com my-bans Rude to others`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:312
msgid "(ban all users on a given homeserver by using a [wildcard](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#wildcards)): `!draupnir ban @*:example.org my-bans Spam server, all users are fake`"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:314
msgid "As a result of running these commands, you may observe:"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:316
msgid "Draupnir creating `m.policy.rule.user` state events in the `#my-bans-bl:example.com` room on your server"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:317
msgid "applying these rules against all rooms that Draupnir is an Administrator in"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:319
msgid "You can undo bans with the [unban command](https://the-draupnir-project.github.io/draupnir-documentation/moderator/managing-users#the-unban-command)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:321
msgid "Enabling built-in protections"
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:323
msgid "You can also **turn on various built-in [protections](https://the-draupnir-project.github.io/draupnir-documentation/protections)** like `JoinWaveShortCircuitProtection` (\"If X amount of users join in Y time, set the room to invite-only\")."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:325
msgid "To **see which protections are available and which are enabled**, send a `!draupnir protections` command to the Management Room."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:327
msgid "To [**see the configuration options for a given protection**](https://the-draupnir-project.github.io/draupnir-documentation/protections/configuring-protections#displaying-the-protection-settings), send a `!draupnir protections show PROTECTION_NAME` (e.g. `!draupnir protections show JoinWaveShortCircuitProtection`)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:329
msgid "To [**set a specific option for a given protection**](https://the-draupnir-project.github.io/draupnir-documentation/protections/configuring-protections#changing-protection-settings), send a command like this: `!draupnir protections config set PROTECTION_NAME OPTION VALUE` (e.g. `!draupnir protections config set JoinWaveShortCircuitProtection timescaleMinutes 30`)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:331
msgid "To [**enable a given protection**](https://the-draupnir-project.github.io/draupnir-documentation/protections/block-invitations-on-server-protection#enabling-the-protection), send a command like this: `!draupnir protections enable PROTECTION_NAME` (e.g. `!draupnir protections enable JoinWaveShortCircuitProtection`)."
msgstr ""
#: ../../../docs/configuring-playbook-bot-draupnir.md:333
msgid "To **disable a given protection**, send a command like this: `!draupnir protections disable PROTECTION_NAME` (e.g. `!draupnir protections disable JoinWaveShortCircuitProtection`)."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 10:32+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -29,7 +29,7 @@ msgid "The playbook can install and configure [mautrix-telegram](https://github.
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:20
msgid "See the project's [documentation](https://docs.mau.fi/bridges/python/telegram/index.html) to learn what it does and why it might be useful to you."
msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/telegram/index.html) to learn what it does and why it might be useful to you."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:22
@@ -45,11 +45,11 @@ msgid "To use the bridge, you'd need to obtain an API key from [https://my.teleg
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:28
msgid "Enable Appservice Double Puppet or Shared Secret Auth (optional)"
msgid "Enable Appservice Double Puppet (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:30
msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) or [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service for this playbook."
msgid "If you want to set up [Double Puppeting](https://docs.mau.fi/bridges/general/double-puppeting.html) (hint: you most likely do) for this bridge automatically, you need to have enabled [Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md) service for this playbook."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:32
@@ -57,113 +57,85 @@ msgid "See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:34
msgid "**Notes**:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:36
msgid "Double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:38
msgid "If you decided to enable Double Puppeting manually, send `login-matrix` to the bot in order to receive an instruction about how to send an access token to it."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:40
msgid "Adjusting the playbook configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:42
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:36
msgid "To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `YOUR_TELEGRAM_APP_ID` and `YOUR_TELEGRAM_API_HASH`."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:50
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:44
msgid "Relaying"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:52
msgid "Enable relay-bot (optional)"
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:46
msgid "This bridge supports the common [mautrix bridge relay mode](configuring-playbook-bridge-mautrix-bridges.md#enable-relay-mode-optional). Once enabled, any authenticated user can be turned into a relaybot for a chat by sending `!tg set-relay` in that chat."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:54
msgid "If you want to use the relay-bot feature ([relay bot documentation](https://docs.mau.fi/bridges/python/telegram/relay-bot.html)), which allows anonymous user to chat with telegram users, add the following configuration to your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:64
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:48
msgid "Configure a user as an administrator of the bridge (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:66
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:50
msgid "You might also want to give permissions to a user to administrate the bot. See [this section](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional) on the common guide for details about it."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:68
msgid "More details about permissions in this example: https://github.com/mautrix/telegram/blob/master/mautrix_telegram/example-config.yaml#L410"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:70
msgid "Use the bridge for direct chats only (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:72
msgid "If you want to exclude all groups from syncing and use the Telegram-Bridge only for direct chats, add the following configuration to your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:78
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:52
msgid "Extending the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:80
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:54
msgid "There are some additional things you may wish to configure about the bridge."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:83
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:56
msgid "See [this section](configuring-playbook-bridge-mautrix-bridges.md#extending-the-configuration) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about variables that you can customize and the bridge's default configuration, including [bridge permissions](configuring-playbook-bridge-mautrix-bridges.md#configure-bridge-permissions-optional), [encryption support](configuring-playbook-bridge-mautrix-bridges.md#enable-encryption-optional), [bot's username](configuring-playbook-bridge-mautrix-bridges.md#set-the-bots-username-optional), etc."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:85
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:58
msgid "Installing"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:87
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:60
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:94
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:67
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:96
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:69
msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:98
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:71
msgid "Usage"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:100
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:73
msgid "To use the bridge, you need to start a chat with `@telegrambot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:102
msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/python/telegram/authentication.html)."
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:75
msgid "You can then follow instructions on the bridge's [official documentation on Authentication](https://docs.mau.fi/bridges/go/telegram/authentication.html)."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:104
msgid "After logging in, the bridge will create portal rooms for all of your Telegram groups and invite you to them. Note that the bridge won't automatically create rooms for private chats."
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:77
msgid "After logging in, the bridge will create portal rooms for all of your Telegram groups and invite you to them."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:106
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:79
msgid "Troubleshooting"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:108
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:81
msgid "As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-mautrix-telegram`."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:110
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:83
msgid "Increase logging verbosity"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:112
msgid "The default logging level for this component is `WARNING`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:"
#: ../../../docs/configuring-playbook-bridge-mautrix-telegram.md:85
msgid "The default logging level for this component is `warn`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:"
msgstr ""
@@ -0,0 +1,133 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2018-2026, Slavi Pantaleev, Aine Etke, MDAD community members
# This file is distributed under the same license as the matrix-docker-ansible-deploy package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:8
msgid "Setting up a Matrix <-> Meshtastic bridge (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:10
msgid "The playbook can install and configure [meshtastic-matrix-relay](https://github.com/jeremiah-k/meshtastic-matrix-relay) (sometimes referred to as `mmrelay`) for you — a bridge between [Matrix](https://matrix.org/) and [Meshtastic](https://meshtastic.org/) mesh networks."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:12
msgid "See the [project's documentation](https://github.com/jeremiah-k/meshtastic-matrix-relay) to learn what it does and why it might be useful to you."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:14
msgid "Prerequisites"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:16
msgid "You need a Matrix account for the bot. You can either [register the bot account manually](registering-users.md) or let the playbook create it when running `ansible-playbook … --tags=ensure-matrix-users-created`. Either way, you'll need the account's **password** to configure the bridge — unlike most other bridges in this playbook, `mmrelay` authenticates with a password and creates its own session (optionally with End-to-End Encryption material)."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:18
msgid "You also need access to a Meshtastic device, connected to the server via one of:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:20
msgid "**TCP**: the device is reachable on the network (e.g. a Meshtastic node running the TCP API),"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:21
msgid "**Serial**: the device is plugged in via USB and available on the host (e.g. `/dev/ttyUSB0`),"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:22
msgid "**BLE**: the device is reachable via Bluetooth Low Energy from the host."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:24
msgid "Adjusting the playbook configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:26
msgid "To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:56
msgid "By default, the bot's Matrix ID is `@meshtasticbot:{{ matrix_domain }}`. To change it, adjust `matrix_meshtastic_relay_matrix_bot_user_id`."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:58
msgid "Bluetooth (BLE) connections"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:60
msgid "When `matrix_meshtastic_relay_connection_type` is `ble`, the container runs with `--network=host` and bind-mounts the host's DBus socket — both are required for Bluetooth pairing/communication. Only use this connection type if you trust the playbook-managed host and are comfortable with these privileges."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:62
msgid "Serial connections"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:64
msgid "When `matrix_meshtastic_relay_connection_type` is `serial`, the host device referenced by `matrix_meshtastic_relay_serial_port` is passed through to the container. Make sure that `matrix_user_uid` / `matrix_user_gid` have read/write access to that device (e.g. by adding the matrix user to the `dialout` group, or adjusting udev rules)."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:66
msgid "Extending the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:68
msgid "There are some additional things you may wish to configure about the bridge."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:70
msgid "Take a look at:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:72
msgid "`roles/custom/matrix-bridge-meshtastic-relay/defaults/main.yml` for some variables that you can customize via your `vars.yml` file. You can override individual `matrix_meshtastic_relay_*` variables, or make finer-grained adjustments via `matrix_meshtastic_relay_configuration_extension_yaml`."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:74
msgid "Installing"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:76
msgid "After configuring the playbook, run the playbook with [playbook tags](playbook-tags.md) as below:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:83
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:85
msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:87
msgid "Usage"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:89
msgid "Invite the bot to the Matrix rooms listed in `matrix_meshtastic_relay_matrix_rooms_list` and it will relay between Matrix and the corresponding Meshtastic channel. Messages sent on Meshtastic will appear in Matrix and vice versa."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:91
msgid "See the [project's wiki](https://github.com/jeremiah-k/meshtastic-matrix-relay/wiki) for details about commands, plugins and advanced usage."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:93
msgid "Troubleshooting"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:95
msgid "As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-meshtastic-relay`."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 10:32+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -37,21 +37,29 @@ msgid "To uninstall the service, run the command below on the server:"
msgstr ""
#: ../../../docs/configuring-playbook-conduwuit.md:32
msgid "Migrating to Continuwuity"
msgid "Migrating to Tuwunel"
msgstr ""
#: ../../../docs/configuring-playbook-conduwuit.md:34
msgid "Since [Continuwuity](configuring-playbook-continuwuity.md) is a drop-in replacement for conduwuit, migration is possible. Please refer to [this section](./configuring-playbook-continuwuity.md#migrating-from-conduwuit) for details."
msgid "[Tuwunel](configuring-playbook-tuwunel.md) is a fork of conduwuit, [endorsed as conduwuit's successor](https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/5200#issuecomment-4396211185) by the former conduwuit maintainer. It reads conduwuit's database directly, so migration is possible. Please refer to [this section](./configuring-playbook-tuwunel.md#migrating-from-conduwuit) for details."
msgstr ""
#: ../../../docs/configuring-playbook-conduwuit.md:36
msgid "Removing data manually"
msgid "Migrating to Continuwuity"
msgstr ""
#: ../../../docs/configuring-playbook-conduwuit.md:38
msgid "If you are not going to migrate to [Continuwuity](configuring-playbook-continuwuity.md), you can remove data by running the command on the server:"
msgid "Since [Continuwuity](configuring-playbook-continuwuity.md) is a drop-in replacement for conduwuit, migration is possible. Please refer to [this section](./configuring-playbook-continuwuity.md#migrating-from-conduwuit) for details."
msgstr ""
#: ../../../docs/configuring-playbook-conduwuit.md:44
#: ../../../docs/configuring-playbook-conduwuit.md:40
msgid "Removing data manually"
msgstr ""
#: ../../../docs/configuring-playbook-conduwuit.md:42
msgid "If you are not going to migrate to [Tuwunel](configuring-playbook-tuwunel.md) or [Continuwuity](configuring-playbook-continuwuity.md), you can remove data by running the command on the server:"
msgstr ""
#: ../../../docs/configuring-playbook-conduwuit.md:48
msgid "[!WARNING] Once you removing the path, there is no going back. Your data on the homeserver (including chat history, rooms, etc.) will be deleted and not be possible to restore them. Please be certain."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-15 09:10+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -81,81 +81,97 @@ msgid "There are various Ansible variables that control settings in the `continu
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:49
msgid "💡 By default, the playbook wires Continuwuity into a few playbook-wide settings:"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:51
msgid "if `exim_relay_enabled: true` (the default), Continuwuity SMTP is automatically enabled and pointed at the [local Exim relay](configuring-playbook-email.md) service"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:52
msgid "`matrix_continuwuity_config_well_known_client` is automatically set to the public homeserver URL in the usual SSL-enabled setup, which helps email verification and password-reset links work in delegated-domain setups"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:54
msgid "You can override any of these defaults in your `vars.yml` file if you want Continuwuity to use a different SMTP server or a different well-known client URL."
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:56
msgid "If a specific setting you'd like to change does not have a dedicated Ansible variable, you can either submit a PR to us to add it, or you can [override the setting using an environment variable](https://continuwuity.org/configuration#environment-variables) using `matrix_continuwuity_environment_variables_extension`. For example:"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:57
#: ../../../docs/configuring-playbook-continuwuity.md:64
msgid "Creating the first user account"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:59
#: ../../../docs/configuring-playbook-continuwuity.md:66
msgid "Unlike other homeserver implementations (like Synapse and Dendrite), continuwuity does not support creating users via the command line or via the playbook."
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:61
#: ../../../docs/configuring-playbook-continuwuity.md:68
msgid "On first startup, Continuwuity creates a special one-time-use registration token and logs it to the server's console. To access this, you will need to SSH into the server and run the following command:"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:68
#: ../../../docs/configuring-playbook-continuwuity.md:75
msgid "Find the token, highlight it, and copy it (ctrl+shift+C). This token should allow you to create the first user account via any client (like [Element Web](./configuring-playbook-client-element-web.md)) which supports creating users."
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:70
#: ../../../docs/configuring-playbook-continuwuity.md:77
msgid "The **first user account that you create will be marked as an admin** and **will be automatically invited to an admin room**."
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:73
#: ../../../docs/configuring-playbook-continuwuity.md:80
msgid "Configuring bridges / appservices"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:75
#: ../../../docs/configuring-playbook-continuwuity.md:82
msgid "For other homeserver implementations (like Synapse and Dendrite), the playbook automatically registers appservices (for bridges, bots, etc.) with the homeserver."
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:77
#: ../../../docs/configuring-playbook-continuwuity.md:84
msgid "For continuwuity, you will have to manually register appservices using the [`!admin appservices register` command](https://continuwuity.org/appservices.html#set-up-the-appservice---general-instructions) sent to the server bot account."
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:79
#: ../../../docs/configuring-playbook-continuwuity.md:86
msgid "The server's bot account has a Matrix ID of `@conduit:example.com` (not `@continuwuity:example.com`!) due to continuwuity's historical legacy. Your first user account would already have been invited to an admin room with this bot."
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:82
#: ../../../docs/configuring-playbook-continuwuity.md:89
msgid "Find the appservice file you'd like to register. This can be any `registration.yaml` file found in the `/matrix` directory, for example `/matrix/mautrix-signal/bridge/registration.yaml`."
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:84
#: ../../../docs/configuring-playbook-continuwuity.md:91
msgid "Then, send its content to the existing admin room:"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:108
#: ../../../docs/configuring-playbook-continuwuity.md:115
msgid "Migrating from conduwuit"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:110
#: ../../../docs/configuring-playbook-continuwuity.md:117
msgid "Since Continuwuity is a drop-in replacement for [conduwuit](configuring-playbook-conduwuit.md), migration is possible."
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:112
#: ../../../docs/configuring-playbook-continuwuity.md:119
msgid "Make sure that Continuwuity is properly set up on your `vars.yml` as described above"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:114
#: ../../../docs/configuring-playbook-continuwuity.md:121
msgid "Make sure that Conduwuit references are removed from your `vars.yml` file"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:116
#: ../../../docs/configuring-playbook-continuwuity.md:123
msgid "Run the installation in a way that installs new services and uninstalls old ones (e.g. `just setup-all`)"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:118
#: ../../../docs/configuring-playbook-continuwuity.md:125
msgid "Run the playbook with the `continuwuity-migrate-from-conduwuit` tag (e.g. `just run-tags continuwuity-migrate-from-conduwuit`). This migrates data from `/matrix/conduwuit` to `/matrix/continuwuity`"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:120
#: ../../../docs/configuring-playbook-continuwuity.md:127
msgid "Troubleshooting"
msgstr ""
#: ../../../docs/configuring-playbook-continuwuity.md:122
#: ../../../docs/configuring-playbook-continuwuity.md:129
msgid "As with all other services, you can find the logs in [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html) by logging in to the server with SSH and running `journalctl -fu matrix-continuwuity`."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-15 09:10+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -53,7 +53,7 @@ msgid "**Final delivery capability**: Can deliver emails directly if you don't h
msgstr ""
#: ../../../docs/configuring-playbook-email.md:26
msgid "**Centralized configuration**: Configure your upstream SMTP server once in exim-relay, then point all services ([Synapse](configuring-playbook-synapse.md), [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md), etc.) thereno need to configure SMTP in each component"
msgid "**Centralized configuration**: Configure your upstream SMTP server once in exim-relay, then point all services ([Synapse](configuring-playbook-synapse.md), [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md), [Continuwuity](configuring-playbook-continuwuity.md), etc.) there, with no need to configure SMTP in each component"
msgstr ""
#: ../../../docs/configuring-playbook-email.md:28
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 10:32+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -41,15 +41,15 @@ msgid "If you wish to disable federation, you can do that with an empty list (`[
msgstr ""
#: ../../../docs/configuring-playbook-federation.md:27
msgid "Exposing the room directory over federation"
msgid "Controlling exposure of the room directory over federation"
msgstr ""
#: ../../../docs/configuring-playbook-federation.md:29
msgid "By default, your server's public rooms directory is not exposed to other servers via federation."
msgid "By default, your server's public rooms directory is exposed to other servers via federation, so that public rooms hosted on your server can be discovered by users on other servers. This goes against the Synapse upstream default (which is `false`); see the [2023-10-23 changelog entry](../CHANGELOG.md#enabling-allow_public_rooms_over_federation-by-default-for-synapse) for the reasoning behind this choice."
msgstr ""
#: ../../../docs/configuring-playbook-federation.md:31
msgid "To expose it, add the following configuration to your `vars.yml` file:"
msgid "To prevent your public rooms directory from being exposed over federation (restoring the Synapse upstream default), add the following configuration to your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-federation.md:37
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-15 09:10+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -77,29 +77,41 @@ msgid "In addition to the HTTP/HTTPS ports (which you've already exposed as per
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:41
msgid "Installing"
msgid "Fronting the integrated reverse-proxy with another reverse-proxy"
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:43
msgid "If you're [fronting the integrated reverse-proxy webserver with another reverse-proxy](configuring-playbook-own-webserver.md#fronting-the-integrated-reverse-proxy-webserver-with-another-reverse-proxy) (e.g. nginx), it needs to forward WebSocket traffic for [LiveKit Server](configuring-playbook-livekit-server.md) at the `/livekit-server/` path. Without that, Matrix RTC calls will not work."
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:45
msgid "See [`examples/reverse-proxies/nginx/matrix.conf`](../examples/reverse-proxies/nginx/matrix.conf) for an nginx example."
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:47
msgid "Installing"
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:49
msgid "After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records) and [adjusting firewall rules](#adjusting-firewall-rules), run the playbook with [playbook tags](playbook-tags.md) as below:"
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:50
#: ../../../docs/configuring-playbook-matrix-rtc.md:56
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:52
#: ../../../docs/configuring-playbook-matrix-rtc.md:58
msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x faster](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) than `just setup-all`) when its components remain unchanged. If you adjust your `vars.yml` to remove other components, you'd need to run `just setup-all`, or these components will still remain installed. Note these shortcuts run the `ensure-matrix-users-created` tag too."
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:54
#: ../../../docs/configuring-playbook-matrix-rtc.md:60
msgid "Usage"
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:56
#: ../../../docs/configuring-playbook-matrix-rtc.md:62
msgid "Once installed, Matrix clients which support Element Call (like [Element Web](configuring-playbook-client-element-web.md) and Element X on mobile (iOS and Android)) will automatically use the Matrix RTC stack."
msgstr ""
#: ../../../docs/configuring-playbook-matrix-rtc.md:58
#: ../../../docs/configuring-playbook-matrix-rtc.md:64
msgid "These clients typically embed the Element Call frontend UI within them, so installing [Element Call](configuring-playbook-element-call.md) is only necessary if you'd like to use it standalone - directly via a browser."
msgstr ""
@@ -0,0 +1,265 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) 2018-2026, Slavi Pantaleev, Aine Etke, MDAD community members
# This file is distributed under the same license as the matrix-docker-ansible-deploy package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
#: ../../../docs/configuring-playbook-tuwunel.md:8
msgid "Configuring Tuwunel (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:10
msgid "The playbook can install and configure the [Tuwunel](https://matrix-construct.github.io/tuwunel/) Matrix homeserver for you."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:12
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:14
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:16
msgid "[!WARNING]"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:17
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)."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:18
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:20
msgid "Adjusting the playbook configuration"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:22
msgid "To use Tuwunel, set the following on `inventory/host_vars/matrix.example.com/vars.yml`:"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:36
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:38
msgid "Wiring done for you"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:40
msgid "When `matrix_homeserver_implementation: tuwunel` is set, the playbook automatically integrates Tuwunel with the rest of your stack:"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:42
msgid "**Federation.** Toggled by `matrix_homeserver_federation_enabled`. The federation virtual host (port 8448 in the default setup) is wired up via Traefik labels."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:43
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:44
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)."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:45
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:47
msgid "Extending the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:49
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:51
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:"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:59
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:61
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:63
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:65
msgid "Identity providers (OAuth2 / OIDC)"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:67
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:"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:82
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:84
msgid "LDAP"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:86
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:97
msgid "[!NOTE] `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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:100
msgid "For direct-bind, anonymous-search, and admin-sync details, see [LDAP authentication](https://matrix-construct.github.io/tuwunel/authentication/ldap.html)."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:102
msgid "JWT login"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:104
msgid "Tuwunel can accept signed JSON Web Tokens both as a login flow and as a User-Interactive Authentication step:"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:115
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:117
msgid "Media storage providers"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:119
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):"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:136
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:138
msgid "[!NOTE] 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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:141
msgid "RocksDB and cache tuning"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:143
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 bump the cache modifier:"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:152
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:154
msgid "To enable Sentry crash reporting, set `matrix_tuwunel_config_sentry_enabled: true`."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:156
msgid "Federation gating"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:158
msgid "Tuwunel accepts regular-expression patterns at every level of remote-server filtering:"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:169
msgid "Tuwunel additionally implements [MSC4284 policy servers](https://github.com/matrix-org/matrix-spec-proposals/pull/4284) for room-level federation gating; that lives in room state and needs no playbook configuration."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:171
msgid "Default room version"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:173
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:175
msgid "Creating the first user account"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:177
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:"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md: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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:186
msgid "Configuring bridges and appservices"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:188
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:"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:209
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:211
msgid "Migrating from conduwuit"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:213
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:215
msgid "Set `matrix_homeserver_implementation: tuwunel` on `vars.yml` and remove any `matrix_conduwuit_*` overrides."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:216
msgid "Run a full installation so that the new service is created and the old one removed (e.g. `just setup-all`)."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:217
msgid "Run `just run-tags tuwunel-migrate-from-conduwuit`."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:219
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."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:221
msgid "[!CAUTION] 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)."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:224
msgid "Troubleshooting"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:226
msgid "As with all other services, the logs are available via [systemd-journald](https://www.freedesktop.org/software/systemd/man/systemd-journald.service.html):"
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:232
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`."
msgstr ""
#: ../../../docs/configuring-playbook-tuwunel.md:234
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."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-03 11:56+0100\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -97,485 +97,493 @@ msgid "[Configuring continuwuity](configuring-playbook-continuwuity.md), if you'
msgstr ""
#: ../../../docs/configuring-playbook.md:56
msgid "[Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation"
msgid "[Configuring Tuwunel](configuring-playbook-tuwunel.md), if you've switched to the [Tuwunel](https://matrix-construct.github.io/tuwunel/) homeserver implementation"
msgstr ""
#: ../../../docs/configuring-playbook.md:58
msgid "[Configuring Dendrite](configuring-playbook-dendrite.md), if you've switched to the [Dendrite](https://matrix-org.github.io/dendrite) homeserver implementation"
msgstr ""
#: ../../../docs/configuring-playbook.md:60
msgid "Server components:"
msgstr ""
#: ../../../docs/configuring-playbook.md:59
#: ../../../docs/configuring-playbook.md:61
msgid "[Using an external PostgreSQL server](configuring-playbook-external-postgres.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:61
#: ../../../docs/configuring-playbook.md:63
msgid "[Configuring a TURN server](configuring-playbook-turn.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:63
#: ../../../docs/configuring-playbook.md:65
msgid "[Configuring the Traefik reverse-proxy](configuring-playbook-traefik.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:65
#: ../../../docs/configuring-playbook.md:67
msgid "[Using your own webserver, instead of this playbook's Traefik reverse-proxy](configuring-playbook-own-webserver.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:67
#: ../../../docs/configuring-playbook.md:69
msgid "[Adjusting SSL certificate retrieval](configuring-playbook-ssl-certificates.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:69
#: ../../../docs/configuring-playbook.md:71
msgid "[Adjusting email-sending settings](configuring-playbook-email.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:71
#: ../../../docs/configuring-playbook.md:73
msgid "[Setting up Dynamic DNS](configuring-playbook-dynamic-dns.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:73
#: ../../../docs/configuring-playbook.md:75
msgid "Server connectivity:"
msgstr ""
#: ../../../docs/configuring-playbook.md:74
#: ../../../docs/configuring-playbook.md:76
msgid "[Enabling Telemetry for your Matrix server](configuring-playbook-telemetry.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:76
#: ../../../docs/configuring-playbook.md:78
msgid "[Controlling Matrix federation](configuring-playbook-federation.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:78
#: ../../../docs/configuring-playbook.md:80
msgid "[Configuring IPv6](./configuring-ipv6.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:80
#: ../../../docs/configuring-playbook.md:82
msgid "Clients"
msgstr ""
#: ../../../docs/configuring-playbook.md:82
#: ../../../docs/configuring-playbook.md:84
msgid "Web clients for Matrix that you can host on your own domains."
msgstr ""
#: ../../../docs/configuring-playbook.md:84
#: ../../../docs/configuring-playbook.md:86
msgid "[Configuring Element Web](configuring-playbook-client-element-web.md), if you're going with the default/recommended client"
msgstr ""
#: ../../../docs/configuring-playbook.md:86
#: ../../../docs/configuring-playbook.md:88
msgid "[Setting up Hydrogen](configuring-playbook-client-hydrogen.md), if you've enabled [Hydrogen](https://github.com/element-hq/hydrogen-web), a lightweight Matrix client with legacy and mobile browser support"
msgstr ""
#: ../../../docs/configuring-playbook.md:88
#: ../../../docs/configuring-playbook.md:90
msgid "[Setting up Cinny](configuring-playbook-client-cinny.md), if you've enabled [Cinny](https://github.com/ajbura/cinny), a web client focusing primarily on simple, elegant and secure interface"
msgstr ""
#: ../../../docs/configuring-playbook.md:90
#: ../../../docs/configuring-playbook.md:92
msgid "[Setting up Sable](configuring-playbook-client-sable.md), if you've enabled [Sable](https://github.com/7w1/sable), a web client focusing primarily on simple, elegant and secure interface"
msgstr ""
#: ../../../docs/configuring-playbook.md:92
#: ../../../docs/configuring-playbook.md:94
msgid "[Setting up SchildiChat Web](configuring-playbook-client-schildichat-web.md), if you've enabled [SchildiChat Web](https://schildi.chat/), a web client based on [Element Web](https://element.io/) with some extras and tweaks"
msgstr ""
#: ../../../docs/configuring-playbook.md:94
#: ../../../docs/configuring-playbook.md:96
msgid "[Setting up FluffyChat Web](configuring-playbook-client-fluffychat-web.md), if you've enabled [FluffyChat Web](https://github.com/krille-chan/fluffychat), a cute cross-platform messenger (web, iOS, Android) for Matrix written in [Flutter](https://flutter.dev/)"
msgstr ""
#: ../../../docs/configuring-playbook.md:97
#: ../../../docs/configuring-playbook.md:99
msgid "Authentication and user-related"
msgstr ""
#: ../../../docs/configuring-playbook.md:99
#: ../../../docs/configuring-playbook.md:101
msgid "Extend and modify how users are authenticated on your homeserver."
msgstr ""
#: ../../../docs/configuring-playbook.md:101
#: ../../../docs/configuring-playbook.md:103
msgid "[Setting up Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) (Next-generation auth for Matrix, based on OAuth 2.0/OIDC)"
msgstr ""
#: ../../../docs/configuring-playbook.md:103
#: ../../../docs/configuring-playbook.md:105
msgid "[Setting up Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:105
#: ../../../docs/configuring-playbook.md:107
msgid "[Setting up Ketesa](configuring-playbook-ketesa.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:107
#: ../../../docs/configuring-playbook.md:109
msgid "[Setting up matrix-registration](configuring-playbook-matrix-registration.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:109
#: ../../../docs/configuring-playbook.md:111
msgid "[Setting up the REST authentication password provider module](configuring-playbook-rest-auth.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:111
#: ../../../docs/configuring-playbook.md:113
msgid "[Setting up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:113
#: ../../../docs/configuring-playbook.md:115
msgid "[Setting up the LDAP authentication password provider module](configuring-playbook-ldap-auth.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:115
#: ../../../docs/configuring-playbook.md:117
msgid "[Setting up matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:117
#: ../../../docs/configuring-playbook.md:119
msgid "[Setting up Synapse Simple Antispam](configuring-playbook-synapse-simple-antispam.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:119
#: ../../../docs/configuring-playbook.md:121
msgid "[Setting up Matrix User Verification Service](configuring-playbook-user-verification-service.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:121
#: ../../../docs/configuring-playbook.md:123
msgid "File Storage"
msgstr ""
#: ../../../docs/configuring-playbook.md:123
#: ../../../docs/configuring-playbook.md:125
msgid "Use alternative file storage to the default `media_store` folder."
msgstr ""
#: ../../../docs/configuring-playbook.md:125
#: ../../../docs/configuring-playbook.md:127
msgid "[Storing Matrix media files using matrix-media-repo](configuring-playbook-matrix-media-repo.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:127
#: ../../../docs/configuring-playbook.md:129
msgid "[Storing Synapse media files on Amazon S3 or another compatible Object Storage](configuring-playbook-s3.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:129
#: ../../../docs/configuring-playbook.md:131
msgid "[Storing Synapse media files on Amazon S3 with Goofys](configuring-playbook-s3-goofys.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:131
#: ../../../docs/configuring-playbook.md:133
msgid "[Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:133
#: ../../../docs/configuring-playbook.md:135
msgid "Bridging other networks"
msgstr ""
#: ../../../docs/configuring-playbook.md:135
#: ../../../docs/configuring-playbook.md:137
msgid "Bridges can be used to connect your Matrix installation with third-party communication networks."
msgstr ""
#: ../../../docs/configuring-playbook.md:137
#: ../../../docs/configuring-playbook.md:139
msgid "[Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) — a common guide for configuring mautrix bridges"
msgstr ""
#: ../../../docs/configuring-playbook.md:139
#: ../../../docs/configuring-playbook.md:141
msgid "[Setting up Mautrix Bluesky bridging](configuring-playbook-bridge-mautrix-bluesky.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:141
#: ../../../docs/configuring-playbook.md:143
msgid "[Setting up Mautrix Discord bridging](configuring-playbook-bridge-mautrix-discord.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:143
#: ../../../docs/configuring-playbook.md:145
msgid "[Setting up Mautrix Telegram bridging](configuring-playbook-bridge-mautrix-telegram.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:145
#: ../../../docs/configuring-playbook.md:147
msgid "[Setting up Mautrix Slack bridging](configuring-playbook-bridge-mautrix-slack.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:147
#: ../../../docs/configuring-playbook.md:149
msgid "[Setting up Mautrix Google Messages bridging](configuring-playbook-bridge-mautrix-gmessages.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:149
#: ../../../docs/configuring-playbook.md:151
msgid "[Setting up Mautrix Whatsapp bridging](configuring-playbook-bridge-mautrix-whatsapp.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:151
#: ../../../docs/configuring-playbook.md:153
msgid "[Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:153
#: ../../../docs/configuring-playbook.md:155
msgid "[Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:155
#: ../../../docs/configuring-playbook.md:157
msgid "[Setting up Mautrix Google Chat bridging](configuring-playbook-bridge-mautrix-googlechat.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:157
#: ../../../docs/configuring-playbook.md:159
msgid "[Setting up Mautrix Twitter bridging](configuring-playbook-bridge-mautrix-twitter.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:159
#: ../../../docs/configuring-playbook.md:161
msgid "[Setting up Mautrix Signal bridging](configuring-playbook-bridge-mautrix-signal.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:161
#: ../../../docs/configuring-playbook.md:163
msgid "[Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](configuring-playbook-bridge-mautrix-wsproxy.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:163
#: ../../../docs/configuring-playbook.md:165
msgid "[Setting up Appservice IRC bridging](configuring-playbook-bridge-appservice-irc.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:165
#: ../../../docs/configuring-playbook.md:167
msgid "[Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:167
#: ../../../docs/configuring-playbook.md:169
msgid "[Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:169
#: ../../../docs/configuring-playbook.md:171
msgid "[Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:171
#: ../../../docs/configuring-playbook.md:173
msgid "[Setting up matrix-hookshot](configuring-playbook-bridge-hookshot.md) — a bridge between Matrix and multiple project management services, such as [GitHub](https://github.com), [GitLab](https://about.gitlab.com) and [JIRA](https://www.atlassian.com/software/jira)."
msgstr ""
#: ../../../docs/configuring-playbook.md:173
#: ../../../docs/configuring-playbook.md:175
msgid "[Setting up MX Puppet GroupMe bridging](configuring-playbook-bridge-mx-puppet-groupme.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:175
#: ../../../docs/configuring-playbook.md:177
msgid "[Setting up Steam bridging](configuring-playbook-bridge-steam.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:177
#: ../../../docs/configuring-playbook.md:179
msgid "[Setting up MX Puppet Steam bridging](configuring-playbook-bridge-mx-puppet-steam.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:179
#: ../../../docs/configuring-playbook.md:181
msgid "[Setting up Postmoogle email bridging](configuring-playbook-bridge-postmoogle.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:181
#: ../../../docs/configuring-playbook.md:183
msgid "[Setting up Matrix SMS bridging](configuring-playbook-bridge-matrix-bridge-sms.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:183
#: ../../../docs/configuring-playbook.md:185
msgid "[Setting up Heisenbridge bouncer-style IRC bridging](configuring-playbook-bridge-heisenbridge.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:185
msgid "[Setting up WeChat bridging](configuring-playbook-bridge-wechat.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:187
msgid "Bots"
msgid "[Setting up a Matrix <-> Meshtastic bridge](configuring-playbook-bridge-meshtastic-relay.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:189
msgid "Bots provide various additional functionality to your installation."
msgid "[Setting up WeChat bridging](configuring-playbook-bridge-wechat.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:191
msgid "[Setting up baibot](configuring-playbook-bot-baibot.md) — a bot through which you can talk to various [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) services ([OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md))"
msgid "Bots"
msgstr ""
#: ../../../docs/configuring-playbook.md:193
msgid "[Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) — a bot to remind you about stuff"
msgid "Bots provide various additional functionality to your installation."
msgstr ""
#: ../../../docs/configuring-playbook.md:195
msgid "[Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) — a bot to create and manage registration tokens to invite users"
msgid "[Setting up baibot](configuring-playbook-bot-baibot.md) — a bot through which you can talk to various [AI](https://en.wikipedia.org/wiki/Artificial_intelligence) / [Large Language Models](https://en.wikipedia.org/wiki/Large_language_model) services ([OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/) and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:197
msgid "[Setting up maubot](configuring-playbook-bot-maubot.md) — a plugin-based Matrix bot system"
msgid "[Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) — a bot to remind you about stuff"
msgstr ""
#: ../../../docs/configuring-playbook.md:199
msgid "[Setting up Honoroit](configuring-playbook-bot-honoroit.md) — a helpdesk bot"
msgid "[Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) — a bot to create and manage registration tokens to invite users"
msgstr ""
#: ../../../docs/configuring-playbook.md:201
msgid "[Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) — a moderation tool/bot"
msgid "[Setting up maubot](configuring-playbook-bot-maubot.md) — a plugin-based Matrix bot system"
msgstr ""
#: ../../../docs/configuring-playbook.md:203
msgid "[Setting up Draupnir](configuring-playbook-bot-draupnir.md) — a moderation tool/bot, forked from Mjolnir and maintained by its former leader developer"
msgid "[Setting up Honoroit](configuring-playbook-bot-honoroit.md) — a helpdesk bot"
msgstr ""
#: ../../../docs/configuring-playbook.md:205
msgid "[Setting up Draupnir for all/D4A](configuring-playbook-appservice-draupnir-for-all.md) — like the [Draupnir bot](configuring-playbook-bot-draupnir.md) mentioned above, but running in appservice mode and supporting multiple instances"
msgid "[Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) — a moderation tool/bot"
msgstr ""
#: ../../../docs/configuring-playbook.md:207
msgid "[Setting up Buscarron](configuring-playbook-bot-buscarron.md) — a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room"
msgid "[Setting up Draupnir](configuring-playbook-bot-draupnir.md) — a moderation tool/bot, forked from Mjolnir and maintained by its former leader developer"
msgstr ""
#: ../../../docs/configuring-playbook.md:209
msgid "Administration"
msgid "[Setting up Draupnir for all/D4A](configuring-playbook-appservice-draupnir-for-all.md) — like the [Draupnir bot](configuring-playbook-bot-draupnir.md) mentioned above, but running in appservice mode and supporting multiple instances"
msgstr ""
#: ../../../docs/configuring-playbook.md:211
msgid "Services that help you in administrating and monitoring your Matrix installation."
msgid "[Setting up Buscarron](configuring-playbook-bot-buscarron.md) — a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room"
msgstr ""
#: ../../../docs/configuring-playbook.md:213
msgid "[Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)"
msgid "Administration"
msgstr ""
#: ../../../docs/configuring-playbook.md:215
msgid "[Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)"
msgid "Services that help you in administrating and monitoring your Matrix installation."
msgstr ""
#: ../../../docs/configuring-playbook.md:217
msgid "[Setting up the rageshake bug report server](configuring-playbook-rageshake.md)"
msgid "[Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:219
msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)"
msgid "[Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:221
msgid "[Setting up the rageshake bug report server](configuring-playbook-rageshake.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:223
msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:225
msgid "Backups:"
msgstr ""
#: ../../../docs/configuring-playbook.md:222
#: ../../../docs/configuring-playbook.md:226
msgid "[Setting up BorgBackup](configuring-playbook-backup-borg.md) — a full Matrix server backup solution, including the Postgres database"
msgstr ""
#: ../../../docs/configuring-playbook.md:224
#: ../../../docs/configuring-playbook.md:228
msgid "[Setting up Postgres backup](configuring-playbook-postgres-backup.md) — a Postgres-database backup solution (note: does not include other files)"
msgstr ""
#: ../../../docs/configuring-playbook.md:226
#: ../../../docs/configuring-playbook.md:230
msgid "Other specialized services"
msgstr ""
#: ../../../docs/configuring-playbook.md:228
#: ../../../docs/configuring-playbook.md:232
msgid "Various services that don't fit any other categories."
msgstr ""
#: ../../../docs/configuring-playbook.md:230
#: ../../../docs/configuring-playbook.md:234
msgid "[Setting up Element Call](configuring-playbook-element-call.md) — a native Matrix video conferencing application, built on top of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) (optional)"
msgstr ""
#: ../../../docs/configuring-playbook.md:232
#: ../../../docs/configuring-playbook.md:236
msgid "[Setting up LiveKit JWT Service](configuring-playbook-livekit-jwt-service.md) - a component of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) (optional)"
msgstr ""
#: ../../../docs/configuring-playbook.md:234
#: ../../../docs/configuring-playbook.md:238
msgid "[Setting up LiveKit Server](configuring-playbook-livekit-server.md) - a component of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) (optional)"
msgstr ""
#: ../../../docs/configuring-playbook.md:236
#: ../../../docs/configuring-playbook.md:240
msgid "[Setting up Matrix RTC](configuring-playbook-matrix-rtc.md) (optional)"
msgstr ""
#: ../../../docs/configuring-playbook.md:238
#: ../../../docs/configuring-playbook.md:242
msgid "[Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md) for compressing the database on Synapse homeservers"
msgstr ""
#: ../../../docs/configuring-playbook.md:240
#: ../../../docs/configuring-playbook.md:244
msgid "[Setting up Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:242
#: ../../../docs/configuring-playbook.md:246
msgid "[Setting up Matrix.to](configuring-playbook-matrixto.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:244
#: ../../../docs/configuring-playbook.md:248
msgid "[Setting up Etherpad](configuring-playbook-etherpad.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:246
#: ../../../docs/configuring-playbook.md:250
msgid "[Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:248
#: ../../../docs/configuring-playbook.md:252
msgid "[Setting up Cactus Comments](configuring-playbook-cactus-comments.md) — a federated comment system built on Matrix"
msgstr ""
#: ../../../docs/configuring-playbook.md:250
#: ../../../docs/configuring-playbook.md:254
msgid "[Setting up Pantalaimon (E2EE aware proxy daemon)](configuring-playbook-pantalaimon.md) (advanced)"
msgstr ""
#: ../../../docs/configuring-playbook.md:252
#: ../../../docs/configuring-playbook.md:256
msgid "[Setting up the Sygnal push gateway](configuring-playbook-sygnal.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:254
#: ../../../docs/configuring-playbook.md:258
msgid "[Setting up the ntfy push notifications server](configuring-playbook-ntfy.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:256
#: ../../../docs/configuring-playbook.md:260
msgid "Deprecated / unmaintained / removed services"
msgstr ""
#: ../../../docs/configuring-playbook.md:258
#: ../../../docs/configuring-playbook.md:262
msgid "**Note**: since a deprecated or unmaintained service will not be updated, its bug or vulnerability will be unlikely to get patched. It is recommended to migrate from the service to an alternative if any, and make sure to do your own research before you decide to keep it running nonetheless."
msgstr ""
#: ../../../docs/configuring-playbook.md:260
#: ../../../docs/configuring-playbook.md:264
msgid "[Configuring conduwuit](configuring-playbook-conduwuit.md) (removed; this component has been abandoned and unmaintained)"
msgstr ""
#: ../../../docs/configuring-playbook.md:262
#: ../../../docs/configuring-playbook.md:266
msgid "[Setting up the Sliding Sync proxy](configuring-playbook-sliding-sync-proxy.md) for clients which require Sliding Sync support (like old Element X versions, before it got switched to Simplified Sliding Sync)"
msgstr ""
#: ../../../docs/configuring-playbook.md:264
#: ../../../docs/configuring-playbook.md:268
msgid "[Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md) (removed; this component has been discontinued)"
msgstr ""
#: ../../../docs/configuring-playbook.md:266
#: ../../../docs/configuring-playbook.md:270
msgid "[Setting up Appservice Webhooks bridging](configuring-playbook-bridge-appservice-webhooks.md) (deprecated; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be [installed using this playbook](configuring-playbook-bridge-hookshot.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:268
#: ../../../docs/configuring-playbook.md:272
msgid "[Setting up the Dimension integration manager](configuring-playbook-dimension.md) ([unmaintained](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2806#issuecomment-1673559299); after [installing](installing.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:270
#: ../../../docs/configuring-playbook.md:274
msgid "[Setting up Email2Matrix](configuring-playbook-email2matrix.md) (removed; the author suggests taking a look at [Postmoogle](https://github.com/etkecc/postmoogle) as a replacement, which can also be [installed using this playbook](configuring-playbook-bridge-postmoogle.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:272
#: ../../../docs/configuring-playbook.md:276
msgid "[Setting up Go-NEB](configuring-playbook-bot-go-neb.md) (unmaintained; the bridge's author suggests taking a look at [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) as a replacement, which can also be [installed using this playbook](configuring-playbook-bridge-hookshot.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:274
#: ../../../docs/configuring-playbook.md:278
msgid "[Setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md) (removed; Skype has been discontinued since May 2025)"
msgstr ""
#: ../../../docs/configuring-playbook.md:276
#: ../../../docs/configuring-playbook.md:280
msgid "[Setting up ma1sd Identity Server](configuring-playbook-ma1sd.md) (removed; this component has been unmaintained for a long time, so it has been removed from the playbook.)"
msgstr ""
#: ../../../docs/configuring-playbook.md:278
#: ../../../docs/configuring-playbook.md:282
msgid "[Setting up matrix-bot-chatgpt](configuring-playbook-bot-chatgpt.md) (unmaintained; the bridge's author suggests taking a look at [baibot](https://github.com/etkecc/baibot) as a replacement, which can also be [installed using this playbook](configuring-playbook-bot-baibot.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:280
#: ../../../docs/configuring-playbook.md:284
msgid "[Setting up Mautrix Facebook bridging](configuring-playbook-bridge-mautrix-facebook.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-messenger](configuring-playbook-bridge-mautrix-meta-messenger.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:282
#: ../../../docs/configuring-playbook.md:286
msgid "[Setting up Mautrix Instagram bridging](configuring-playbook-bridge-mautrix-instagram.md) (deprecated in favor of the Messenger/Instagram bridge with [mautrix-meta-instagram](configuring-playbook-bridge-mautrix-meta-instagram.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:284
#: ../../../docs/configuring-playbook.md:288
msgid "[Setting up MX Puppet Discord bridging](configuring-playbook-bridge-mx-puppet-discord.md) (removed; this component has been unmaintained for a long time, so it has been removed from the playbook. Consider [setting up Mautrix Discord bridging](configuring-playbook-bridge-mautrix-discord.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:286
#: ../../../docs/configuring-playbook.md:290
msgid "[Setting up MX Puppet Instagram bridging](configuring-playbook-bridge-mx-puppet-instagram.md) (removed; this component has been unmaintained for a long time, so it has been removed from the playbook. Consider [setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:288
#: ../../../docs/configuring-playbook.md:292
msgid "[Setting up MX Puppet Skype bridging](configuring-playbook-bridge-mx-puppet-skype.md) (removed; this component has been broken for a long time, so it has been removed from the playbook. Consider [setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:290
#: ../../../docs/configuring-playbook.md:294
msgid "[Setting up MX Puppet Slack bridging](configuring-playbook-bridge-mx-puppet-slack.md) (removed; this component has been unmaintained for a long time, so it has been removed from the playbook. Consider [setting up Mautrix Slack bridging](configuring-playbook-bridge-mautrix-slack.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:292
#: ../../../docs/configuring-playbook.md:296
msgid "[Setting up MX Puppet Twitter bridging](configuring-playbook-bridge-mx-puppet-twitter.md) (removed; this component has been unmaintained for a long time, so it has been removed from the playbook. Consider [setting up Mautrix Twitter bridging](configuring-playbook-bridge-mautrix-twitter.md))"
msgstr ""
#: ../../../docs/configuring-playbook.md:294
#: ../../../docs/configuring-playbook.md:298
msgid "[Setting up Synapse Auto Invite Accept](configuring-playbook-synapse-auto-accept-invite.md) (removed; since Synapse [v1.109.0](https://github.com/element-hq/synapse/releases/tag/v1.109.0) the same feature is available natively.)"
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-15 09:10+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -92,6 +92,18 @@ msgstr ""
msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. continuwuity is a continuation of conduwuit."
msgstr ""
#: ../../../docs/container-images.md:0
msgid "[Tuwunel](configuring-playbook-tuwunel.md)"
msgstr ""
#: ../../../docs/container-images.md:0
msgid "[matrix-construct/tuwunel](https://ghcr.io/matrix-construct/tuwunel)"
msgstr ""
#: ../../../docs/container-images.md:0
msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Tuwunel is the official successor to conduwuit."
msgstr ""
#: ../../../docs/container-images.md:0
msgid "[Dendrite](configuring-playbook-dendrite.md)"
msgstr ""
@@ -104,11 +116,11 @@ msgstr ""
msgid "Storing your data and managing your presence in the [Matrix](http://matrix.org/) network. Dendrite is a second-generation Matrix homeserver written in Go, an alternative to Synapse."
msgstr ""
#: ../../../docs/container-images.md:33
#: ../../../docs/container-images.md:34
msgid "Clients"
msgstr ""
#: ../../../docs/container-images.md:35
#: ../../../docs/container-images.md:36
msgid "Web clients for Matrix that you can host on your own domains."
msgstr ""
@@ -168,11 +180,11 @@ msgstr ""
msgid "Based on Element Web, with a more traditional instant messaging experience"
msgstr ""
#: ../../../docs/container-images.md:45
#: ../../../docs/container-images.md:46
msgid "Server Components"
msgstr ""
#: ../../../docs/container-images.md:47
#: ../../../docs/container-images.md:48
msgid "Services that run on the server to make the various parts of your installation work."
msgstr ""
@@ -272,11 +284,11 @@ msgstr ""
msgid "JWT service for integrating [Element Call](./configuring-playbook-element-call.md) with [LiveKit Server](./configuring-playbook-livekit-server.md)"
msgstr ""
#: ../../../docs/container-images.md:60
#: ../../../docs/container-images.md:61
msgid "Authentication"
msgstr ""
#: ../../../docs/container-images.md:62
#: ../../../docs/container-images.md:63
msgid "Extend and modify how users are authenticated on your homeserver."
msgstr ""
@@ -352,11 +364,11 @@ msgstr ""
msgid "Spam checker module"
msgstr ""
#: ../../../docs/container-images.md:74
#: ../../../docs/container-images.md:75
msgid "File Storage"
msgstr ""
#: ../../../docs/container-images.md:76
#: ../../../docs/container-images.md:77
msgid "Use alternative file storage to the default `media_store` folder."
msgstr ""
@@ -388,11 +400,11 @@ msgstr ""
msgid "Highly customizable multi-domain media repository for Matrix. Intended for medium to large deployments, this media repo de-duplicates media while being fully compliant with the specification."
msgstr ""
#: ../../../docs/container-images.md:84
#: ../../../docs/container-images.md:85
msgid "Bridges"
msgstr ""
#: ../../../docs/container-images.md:86
#: ../../../docs/container-images.md:87
msgid "Bridges can be used to connect your Matrix installation with third-party communication networks."
msgstr ""
@@ -672,11 +684,11 @@ msgstr ""
msgid "Email to Matrix bridge"
msgstr ""
#: ../../../docs/container-images.md:114
#: ../../../docs/container-images.md:115
msgid "Bots"
msgstr ""
#: ../../../docs/container-images.md:116
#: ../../../docs/container-images.md:117
msgid "Bots provide various additional functionality to your installation."
msgstr ""
@@ -776,11 +788,11 @@ msgstr ""
msgid "Web forms (HTTP POST) to Matrix"
msgstr ""
#: ../../../docs/container-images.md:129
#: ../../../docs/container-images.md:130
msgid "Administration"
msgstr ""
#: ../../../docs/container-images.md:131
#: ../../../docs/container-images.md:132
msgid "Services that help you in administrating and monitoring your Matrix installation."
msgstr ""
@@ -900,11 +912,11 @@ msgstr ""
msgid "Export the usage statistics of a Synapse homeserver to be scraped by Prometheus."
msgstr ""
#: ../../../docs/container-images.md:147
#: ../../../docs/container-images.md:148
msgid "Misc"
msgstr ""
#: ../../../docs/container-images.md:149
#: ../../../docs/container-images.md:150
msgid "Various services that don't fit any other categories."
msgstr ""
@@ -1044,11 +1056,11 @@ msgstr ""
msgid "A native Matrix video conferencing application"
msgstr ""
#: ../../../docs/container-images.md:167
#: ../../../docs/container-images.md:168
msgid "Container images of deprecated / unmaintained services"
msgstr ""
#: ../../../docs/container-images.md:169
#: ../../../docs/container-images.md:170
msgid "The list of the deprecated or unmaintained services is available [here](configuring-playbook.md#deprecated--unmaintained--removed-services)."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 10:32+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -57,7 +57,7 @@ msgid "**Note**: the changes below instruct you how to do this for a basic Synap
msgstr ""
#: ../../../docs/howto-srv-server-delegation.md:29
msgid "if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [continuwuity](./configuring-playbook-continuwuity.md) or [Dendrite](./configuring-playbook-dendrite.md))"
msgid "if you're using another homeserver implementation (e.g. [Conduit](./configuring-playbook-conduit.md), [continuwuity](./configuring-playbook-continuwuity.md), [Tuwunel](./configuring-playbook-tuwunel.md) or [Dendrite](./configuring-playbook-dendrite.md))"
msgstr ""
#: ../../../docs/howto-srv-server-delegation.md:30
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-04-15 09:10+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -49,7 +49,7 @@ msgid "or: a combination of `git pull` and `just roles` (or `make roles` if you
msgstr ""
#: ../../../docs/installing.md:30
msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`"
msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly after updating the playbook: `git pull; rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`"
msgstr ""
#: ../../../docs/installing.md:32
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 10:32+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -73,7 +73,7 @@ msgid "or: a combination of `git pull` and `just roles` (or `make roles` if you
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:39
msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`"
msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly after updating the playbook: `git pull; rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:41
@@ -81,45 +81,69 @@ msgid "**Note**: for details about `just` commands, take a look at: [Running `ju
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:43
msgid "Re-run the playbook setup"
msgid "Acknowledge breaking changes if any"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:45
msgid "After updating the Ansible roles, then re-run the [playbook setup](installing.md#maintaining-your-setup-in-the-future) and restart all services:"
msgid "The playbook uses a migration validation system that ensures you are aware of breaking changes before they'll affect your deployment. If there is one, you are required to acknowledge each breaking change."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:47
msgid "Whenever a breaking change is introduced, the playbook will:"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:49
msgid "bump its expected version value (`matrix_playbook_migration_expected_version`), causing a discrepancy with what you validated (`matrix_playbook_migration_validated_version`)"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:51
msgid "If you remove components from `vars.yml`, or if we switch some component from being installed by default to not being installed by default anymore, you'd need to run the setup command with the `setup-all` tag as below:"
msgid "fail when you run it with a helpful message listing what changed and linking to the relevant changelog entries"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:53
msgid "After reviewing and adapting your setup, update the variable to the new version."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:55
msgid "Re-run the playbook setup"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:57
msgid "**Notes**:"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:59
msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account, if any."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:61
msgid "Our estimation is that running `--tags=install-all,start` is approximately from **2 to 5 times faster** than running `setup-all,ensure-matrix-users-created,start`. See [this entry](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) on `CHANGELOG.md` for more information."
msgid "After updating the Ansible roles and the variable for the validation system when necessary, re-run the [playbook setup](installing.md#maintaining-your-setup-in-the-future) and restart all services:"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:63
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`. Note these shortcuts run the `ensure-matrix-users-created` tag too."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:65
msgid "See [this page on the playbook tags](playbook-tags.md) for more information about those tags."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:67
msgid "PostgreSQL major version upgrade"
msgid "If you remove components from `vars.yml`, or if we switch some component from being installed by default to not being installed by default anymore, you'd need to run the setup command with the `setup-all` tag as below:"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:69
msgid "Major version upgrades to the internal PostgreSQL database are not done automatically. Upgrades must be performed manually."
msgid "**Notes**:"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:71
msgid "The `ensure-matrix-users-created` playbook tag makes the playbook automatically create the bot's user account, if any."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:73
msgid "Our estimation is that running `--tags=install-all,start` is approximately from **2 to 5 times faster** than running `setup-all,ensure-matrix-users-created,start`. See [this entry](../CHANGELOG.md#2x-5x-performance-improvements-in-playbook-runtime) on `CHANGELOG.md` for more information."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:75
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`. Note these shortcuts run the `ensure-matrix-users-created` tag too."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:77
msgid "See [this page on the playbook tags](playbook-tags.md) for more information about those tags."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:79
msgid "PostgreSQL major version upgrade"
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:81
msgid "Major version upgrades to the internal PostgreSQL database are not done automatically. Upgrades must be performed manually."
msgstr ""
#: ../../../docs/maintenance-upgrading-services.md:83
msgid "For details about upgrading it, refer to the [upgrading PostgreSQL guide](maintenance-postgres.md#upgrading-postgresql)."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-02-13 10:32+0000\n"
"POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -289,7 +289,7 @@ msgid "or: a combination of `git pull` and `just roles` (or `make roles` if you
msgstr ""
#: ../../../docs/quick-start.md:122
msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly: `rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`"
msgid "If you don't have either `just` tool or `make` program, you can run the `ansible-galaxy` tool directly after updating the playbook: `git pull; rm -rf roles/galaxy; ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force`"
msgstr ""
#: ../../../docs/quick-start.md:124
+1 -1
View File
@@ -75,7 +75,7 @@
version: v0.19.1-4
name: prometheus_postgres_exporter
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-sable.git
version: v1.15.1-0
version: v1.15.2-0
name: sable
- src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git
version: v1.5.0-0
@@ -12,7 +12,7 @@
matrix_appservice_draupnir_for_all_enabled: true
# renovate: datasource=docker depName=depName=ghcr.io/the-draupnir-project/draupnir
matrix_appservice_draupnir_for_all_version: "v3.0.0"
matrix_appservice_draupnir_for_all_version: "v3.1.0"
matrix_appservice_draupnir_for_all_container_image_self_build: false
matrix_appservice_draupnir_for_all_container_image_self_build_repo: "https://github.com/the-draupnir-project/Draupnir.git"
@@ -58,14 +58,34 @@ matrix_appservice_draupnir_for_all_force_restart: "{{
matrix_appservice_draupnir_for_all_rolling_tag | bool
}}"
# This controls whether Zero Touch Deployment is enabled.
# When enabled, the playbook validates the related settings and only renders
# the configuration values Draupnir expects for this mode.
# This prevents invalid manual combinations from being passed through, since
# Draupnir requires `matrix_appservice_draupnir_for_all_config_adminRoom` to be
# unset and `matrix_appservice_draupnir_for_all_config_initialManager` to be a
# valid user ID.
# Zero Touch Deployment is recommended for all new deployments.
# Deployments that are exempt from this recommendation are assumed to be
# advanced setups with specific needs that require the flexibility of
# non-zero-touch-deployment mode.
# Note that enabling this on an existing deployment will cause the bot to recreate the admin room.
# Manual policy migration has to be done in that case so as not to break when access controls return to working order.
matrix_appservice_draupnir_for_all_zero_touch_deploy: false
# The room ID where people can use the bot. The bot has no access controls, so
# anyone in this room can use the bot - secure your room!
# This should be a room alias - not a matrix.to URL.
# Note: Draupnir is fairly verbose - expect a lot of messages from it.
# Appservice mode, unlike bot mode, is not verbose in the admin room.
# This room is different for Appservice Mode compared to normal mode.
# In Appservice mode it provides functions like user management.
matrix_appservice_draupnir_for_all_config_adminRoom: "" # noqa var-naming
# This controls the MXID of who is invited to the admin room on its creation when using Zero Touch Deployment.
# This value is mutually exclusive with matrix_appservice_draupnir_for_all_config_adminRoom
# and the bot will crash if you attempt to set both at the same time.
matrix_appservice_draupnir_for_all_config_initialManager: "" # noqa var-naming
# Controls if the room state backing store is activated.
# Room state backing store makes restarts of the bot lightning fast as the bot does not suffer from amnesia.
# This config option has diminished improvements for bots on extremely fast homeservers or very very small bots on fast homeservers.
@@ -1,6 +1,6 @@
# SPDX-FileCopyrightText: 2024 David Mehren
# SPDX-FileCopyrightText: 2024 MDAD project contributors
# SPDX-FileCopyrightText: 2024 Catalan Lover <catalanlover@protonmail.com>
# SPDX-FileCopyrightText: 2024 - 2026 Catalan Lover <catalanlover@protonmail.com>
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
# SPDX-FileCopyrightText: 2024 Suguru Hirahara
#
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2024 MDAD project contributors
# SPDX-FileCopyrightText: 2024 Catalan Lover <catalanlover@protonmail.com>
# SPDX-FileCopyrightText: 2024 - 2026 Catalan Lover <catalanlover@protonmail.com>
# SPDX-FileCopyrightText: 2024 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
#
@@ -25,10 +25,19 @@
- {'old': 'matrix_appservice_draupnir_for_all_docker_src_files_path', 'new': 'matrix_appservice_draupnir_for_all_container_src_files_path'}
- {'old': 'matrix_appservice_draupnir_for_all_container_image_force_pull', 'new': '<removed> (No longer needed due to new docker module doing this natively only if needed.)'}
- name: Fail if required matrix-bot-draupnir variables are undefined
- name: Fail if required matrix-appservice-draupnir-for-all variables are undefined
ansible.builtin.fail:
msg: "The `{{ item }}` variable must be defined and have a non-null value."
msg: "The `{{ item.name }}` variable must be defined and have a non-null value."
with_items:
- "matrix_appservice_draupnir_for_all_config_adminRoom"
- "matrix_bot_draupnir_container_network"
when: "lookup('vars', item, default='') == '' or lookup('vars', item, default='') is none"
- {'name': 'matrix_appservice_draupnir_for_all_config_adminRoom', when: "{{ not matrix_appservice_draupnir_for_all_zero_touch_deploy }}"}
- {'name': 'matrix_appservice_draupnir_for_all_config_initialManager', when: "{{ matrix_appservice_draupnir_for_all_zero_touch_deploy }}"}
- {'name': 'matrix_appservice_draupnir_for_all_container_network', when: true}
when: "item.when | bool and (lookup('vars', item.name, default='') == '' or lookup('vars', item.name, default='') is none)"
- name: Fail if inappropriate variables are defined
ansible.builtin.fail:
msg: "The `{{ item.name }}` variable must be undefined or have a null value."
with_items:
- {'name': 'matrix_appservice_draupnir_for_all_config_adminRoom', when: "{{ matrix_appservice_draupnir_for_all_zero_touch_deploy }}"}
- {'name': 'matrix_appservice_draupnir_for_all_config_initialManager', when: "{{ not matrix_appservice_draupnir_for_all_zero_touch_deploy }}"}
when: "item.when | bool and not (lookup('vars', item.name, default='') == '' or lookup('vars', item.name, default='') is none)"
@@ -17,9 +17,16 @@ db:
engine: "postgres"
connectionString: "{{ matrix_appservice_draupnir_for_all_database_connection_string }}"
{% if not matrix_appservice_draupnir_for_all_zero_touch_deploy %}
# A room you have created that scopes who can access the appservice.
# See docs/access_control.md
adminRoom: {{ matrix_appservice_draupnir_for_all_config_adminRoom | to_json }}
{% endif %}
{% if matrix_appservice_draupnir_for_all_zero_touch_deploy %}
# The initial manager to invite if the admin room has to be created.
initialManager: {{ matrix_appservice_draupnir_for_all_config_initialManager | to_json }}
{% endif %}
# This is a web api that the widget connects to in order to interact with the appservice.
webAPI:
@@ -37,6 +44,5 @@ maxDraupnirsPerUser: 1
# Defaults to false when omitted.
allowSelfServiceProvisioning: false
roomStateBackingStore:
enabled: {{ matrix_appservice_draupnir_for_all_config_roomStateBackingStore_enabled | to_json }}
@@ -12,7 +12,7 @@
matrix_bot_draupnir_enabled: true
# renovate: datasource=docker depName=depName=ghcr.io/the-draupnir-project/draupnir
matrix_bot_draupnir_version: "v3.0.0"
matrix_bot_draupnir_version: "v3.1.0"
matrix_bot_draupnir_container_image_self_build: false
matrix_bot_draupnir_container_image_self_build_repo: "https://github.com/the-draupnir-project/Draupnir.git"
@@ -115,12 +115,36 @@ matrix_bot_draupnir_password: "{{ matrix_bot_draupnir_pantalaimon_password }}"
# This configuration option does not follow the common naming schema as its not controlling a config key directly.
matrix_bot_draupnir_login_native: false
# The room ID where people can use the bot. The bot has no access controls, so
# anyone in this room can use the bot - secure your room!
# This controls whether Zero Touch Deployment is enabled.
# When enabled, the playbook validates the settings and only
# renders the configuration values Draupnir expects.
# This prevents invalid manual combinations from being passed through, since
# Draupnir requires `matrix_bot_draupnir_config_managementRoom` to be unset and
# `matrix_bot_draupnir_config_initialManager` to be a valid MXID.
# Zero Touch Deployment is recommended for all new deployments.
# Deployments that are exempt from this recommendation are assumed to be
# advanced setups with specific needs for non-zero-touch mode.
# Note that enabling this on an existing deployment will cause the bot to
# recreate the management room.
# Recreating the management room will cause all protections to reset their settings to defaults
# and cause the recreation of secondary rooms like notification rooms. All bot memory will also be wiped.
matrix_bot_draupnir_zero_touch_deploy: false
# The management room used for administration when Zero Touch
# Deployment is disabled.
# The bot has no access controls, so anyone in this room can use it - secure
# your room!
# This should be a room alias or room ID - not a matrix.to URL.
# Note: Draupnir is fairly verbose - expect a lot of messages from it.
matrix_bot_draupnir_config_managementRoom: "" # noqa var-naming
# The MXID invited as the initial manager when Zero Touch Deployment creates the
# management room.
# This value is mutually exclusive with
# `matrix_bot_draupnir_config_managementRoom`, and the bot will crash if you
# attempt to set both at the same time.
matrix_bot_draupnir_config_initialManager: "" # noqa var-naming
# Endpoint URL that Draupnir uses to interact with the Matrix homeserver (client-server API).
# Set this to the Pantalaimon URL if you're using that.
matrix_bot_draupnir_config_homeserverUrl: "" # noqa var-naming
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2023 - 2025 MDAD project contributors
# SPDX-FileCopyrightText: 2023 - 2025 Catalan Lover <catalanlover@protonmail.com>
# SPDX-FileCopyrightText: 2023 - 2026 Catalan Lover <catalanlover@protonmail.com>
# SPDX-FileCopyrightText: 2024 - 2025 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -45,7 +45,8 @@
with_items:
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ not matrix_bot_draupnir_pantalaimon_use and not matrix_bot_draupnir_login_native }}"}
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ matrix_bot_draupnir_config_experimentalRustCrypto }}"}
- {'name': 'matrix_bot_draupnir_config_managementRoom', when: true}
- {'name': 'matrix_bot_draupnir_config_managementRoom', when: "{{ not matrix_bot_draupnir_zero_touch_deploy }}"}
- {'name': 'matrix_bot_draupnir_config_initialManager', when: "{{ matrix_bot_draupnir_zero_touch_deploy }}"}
- {'name': 'matrix_bot_draupnir_container_network', when: true}
- {'name': 'matrix_bot_draupnir_config_homeserverUrl', when: true}
- {'name': 'matrix_bot_draupnir_config_rawHomeserverUrl', when: true}
@@ -64,6 +65,8 @@
with_items:
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ matrix_bot_draupnir_pantalaimon_use }}"}
- {'name': 'matrix_bot_draupnir_config_accessToken', when: "{{ matrix_bot_draupnir_login_native }}"}
- {'name': 'matrix_bot_draupnir_config_managementRoom', when: "{{ matrix_bot_draupnir_zero_touch_deploy }}"}
- {'name': 'matrix_bot_draupnir_config_initialManager', when: "{{ not matrix_bot_draupnir_zero_touch_deploy }}"}
when: "item.when | bool and not (lookup('vars', item.name, default='') == '' or lookup('vars', item.name, default='') is none)"
- name: Fail when matrix_bot_draupnir_config_experimentalRustCrypto is enabled together with matrix_bot_draupnir_pantalaimon_use
@@ -63,6 +63,7 @@ autojoinOnlyIfManager: true
# Whether Draupnir should report ignored invites to the management room (if autojoinOnlyIfManager is true).
recordIgnoredInvites: false
{% if not matrix_bot_draupnir_zero_touch_deploy %}
# The room ID (or room alias) of the management room, anyone in this room can issue commands to Draupnir.
#
# Draupnir has no more granular access controls other than this, be sure you trust everyone in this room - secure it!
@@ -72,6 +73,13 @@ recordIgnoredInvites: false
# Note: By default, Draupnir is fairly verbose - expect a lot of messages in this room.
# (see verboseLogging to adjust this a bit.)
managementRoom: {{ matrix_bot_draupnir_config_managementRoom | to_json }}
{% endif %}
{% if matrix_bot_draupnir_zero_touch_deploy %}
# The initial manager to invite if the management room has to be created.
# Leave this commented out when using a pre-existing management room.
initialManager: {{ matrix_bot_draupnir_config_initialManager | to_json }}
{% endif %}
# The log level of terminal (or container) output,
# can be one of DEBUG, INFO, WARN and ERROR, in increasing order of importance and severity.
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
+2 -2
View File
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,4 +1,4 @@
SPDX-FileCopyrightText: 2026 MDAD project contributors
SPDX-FileCopyrightText: 2026 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,6 +1,6 @@
{#
SPDX-FileCopyrightText: 2026 MDAD project contributors
SPDX-FileCopyrightText: 2026 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
#}
@@ -1,4 +1,4 @@
SPDX-FileCopyrightText: 2026 MDAD project contributors
SPDX-FileCopyrightText: 2026 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
@@ -1,6 +1,6 @@
{#
SPDX-FileCopyrightText: 2026 MDAD project contributors
SPDX-FileCopyrightText: 2026 Slavi Pantaleev
SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
#}
+2 -2
View File
@@ -1,5 +1,5 @@
# SPDX-FileCopyrightText: 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2026 Slavi Pantaleev
# SPDX-FileCopyrightText: 2025 - 2026 MDAD project contributors
# SPDX-FileCopyrightText: 2025 - 2026 Slavi Pantaleev
#
# SPDX-License-Identifier: AGPL-3.0-or-later