Compare commits

..
Author SHA1 Message Date
renovate[bot]andGitHub 7bf93368a0 Lock file maintenance 2026-07-12 15:20:37 +00:00
334 changed files with 10704 additions and 12469 deletions
-13
View File
@@ -1,13 +0,0 @@
# SPDX-FileCopyrightText: 2025 Jonah Aragon
#
# SPDX-License-Identifier: AGPL-3.0-or-later
FROM ghcr.io/devture/ansible:14.0.0-r0-0
# Install additional packages
RUN apk add --no-cache \
pwgen
# Preserve command history across container restarts
RUN SNIPPET="export HISTFILE=/commandhistory/.ash_history" \
&& echo "$SNIPPET" >> "/root/.profile"
-27
View File
@@ -1,27 +0,0 @@
{
"name": "matrix-docker-ansible-deploy",
"build": {
"dockerfile": "Dockerfile",
"context": ".."
},
"postCreateCommand": {
"Fix Volume Permissions": "chown -R $(whoami): /commandhistory"
},
"mounts": [
{
"source": "matrix-docker-ansible-deploy-bashhistory",
"target": "/commandhistory",
"type": "volume"
}
],
"customizations": {
"vscode": {
"extensions": [
"EditorConfig.EditorConfig",
"redhat.ansible",
"redhat.vscode-yaml",
"ms-python.python"
]
}
}
}
-3
View File
@@ -1,3 +0,0 @@
SPDX-FileCopyrightText: 2025 Jonah Aragon
SPDX-License-Identifier: AGPL-3.0-or-later
-12
View File
@@ -32,18 +32,6 @@
"dock.mau.dev/mautrix/**" "dock.mau.dev/mautrix/**"
], ],
"allowedVersions": "/^v0\\./" "allowedVersions": "/^v0\\./"
},
{
"matchFileNames": [
".github/workflows/close-stale-issues.yml",
".github/workflows/lock-threads.yml",
".github/workflows/matrix.yml",
".github/workflows/update-translations.yml",
"flake.lock",
"i18n/requirements.txt",
"mise.toml"
],
"automerge": true
} }
], ],
"pre-commit": { "pre-commit": {
+1 -1
View File
@@ -15,7 +15,7 @@ repos:
- id: trailing-whitespace - id: trailing-whitespace
- id: end-of-file-fixer - id: end-of-file-fixer
- repo: https://github.com/codespell-project/codespell - repo: https://github.com/codespell-project/codespell
rev: v2.4.3 rev: v2.4.2
hooks: hooks:
- id: codespell - id: codespell
args: ["--skip=*.po,*.pot,i18n/"] args: ["--skip=*.po,*.pot,i18n/"]
-11
View File
@@ -1,16 +1,5 @@
--- ---
extends: default extends: default
# Keep this custom configuration compatible with ansible-lint's `yaml` rule.
# See https://docs.ansible.com/projects/lint/rules/yaml/#yamllint-configuration
rules: rules:
braces:
min-spaces-inside: 0
max-spaces-inside: 1
comments:
min-spaces-from-content: 1
comments-indentation: false
line-length: disable line-length: disable
octal-values:
forbid-explicit-octal: true
forbid-implicit-octal: true
-39
View File
@@ -1,39 +0,0 @@
<!--
SPDX-FileCopyrightText: 2026 Slavi Pantaleev
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Guidance for AI agents
This file gives AI coding agents the minimum context for working on this repository. Human contributors may find it a useful summary too.
## What this is
An Ansible playbook that installs and manages a Matrix homeserver and dozens of related services, each running as a Docker container wrapped in a systemd service.
## Layout
- `setup.yml`: the main playbook, listing all roles.
- `roles/custom/`: roles maintained in this repository.
- `roles/galaxy/`: external roles, downloaded according to `requirements.yml` via [agru](https://github.com/etkecc/agru) (preferred) or `ansible-galaxy`. Run `just roles` to install them (or `just update` to also pull the playbook itself). Editing these roles locally is fine while preparing or testing a fix, but the changes get wiped on the next roles update, so they must be synced back to the role's upstream repository, followed by a version pin update in `requirements.yml`.
- `group_vars/matrix_servers`: wires roles together (feeding one role's variables into another). Values a role can construct by itself belong in the role's `defaults/main.yml`, not here.
- `docs/`: user-facing documentation, one page per component.
- `i18n/`: translation infrastructure. Do not edit locale files by hand; they are managed by automation.
- `CHANGELOG.md`: user-facing announcements, newest first.
## Conventions
Follow the [style guide for playbook developers](docs/style-guide.md). In particular:
- Variable prefixes match the role directory name.
- Playbook-extensible list variables use the `_auto` + `_custom` split; `_custom` is reserved for users.
- Renamed or removed variables get a validation entry, so stale user configuration produces an error instead of being silently ignored. Each role deprecates its own variables in its `validate_config.yml`; the `matrix_playbook_migration` role covers eliminated roles and very-early validation, and also gates breaking changes via `matrix_playbook_migration_expected_version` (see the style guide).
- Every file carries SPDX license headers ([REUSE](https://reuse.software/) specification).
- New components must be registered in `setup.yml`, `group_vars/matrix_servers`, `docs/README.md`, `README.md`, `docs/container-images.md`, and get a `CHANGELOG.md` entry.
## Other notes
- Documentation examples use `example.com`, `@alice:example.com`, and the other placeholder values listed in the style guide.
- Write role tasks concurrency-safe: use `ansible.builtin.tempfile` for temporary files (removed in an `always` block), never fixed shared paths.
- One logical change per commit.
-163
View File
@@ -1,166 +1,3 @@
# 2026-07-18
## LiveKit Server port configuration must be unambiguous now
This only affects you if you have configured a LiveKit Server RTC port range (`livekit_server_config_rtc_port_range_start` and `livekit_server_config_rtc_port_range_end`).
LiveKit only uses one of the two port configuration mechanisms: when a port range is defined, the multiplexed UDP port (`livekit_server_config_rtc_udp_port`) is ignored entirely. Previously, the role would silently render its default UDP port (7882) into the configuration alongside your port range, misleadingly suggesting that both are in effect.
The role now asks you to make the choice explicit: if you define a port range, unset the UDP port by adding `livekit_server_config_rtc_udp_port: ''` to your `vars.yml` file. A validation error will guide you, if your configuration is affected.
# 2026-07-17
## prometheus-nginxlog-exporter metric names have changed
If you have enabled [metrics for nginx logs](docs/configuring-playbook-prometheus-grafana.md) (`prometheus_nginxlog_exporter_enabled: true`), note that the exporter's metric names have changed.
The exporter's configuration used to ship a leftover `myprefix` placeholder as the metric name prefix, producing metrics like `myprefix_http_response_count_total`. The bundled Grafana dashboard queries unprefixed metric names (`http_response_count_total`), so it could never show any data (reported in [#3380](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3380)).
Metric names are now unprefixed, matching the bundled dashboard, which should start working. Each metric carries a `namespace` label, whose value is now `nginx` (previously `matrix`); it is configurable via `prometheus_nginxlog_exporter_config_namespace_name`. If you have built custom dashboards or alerts on top of the old `myprefix_*` metric names, adjust them accordingly, or restore the old behavior by setting `prometheus_nginxlog_exporter_config_namespace_metrics_prefix: myprefix` in your `vars.yml` file.
# 2026-07-16
## (Backward Compatibility Break) Bridge variables have been renamed
All bridge roles (`roles/custom/matrix-bridge-*`) now use a uniform variable naming scheme, where the variable prefix matches the role directory name. This adopts the naming policy proposed in [#4705](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/4705) and requested in [#5096](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/5096).
Previously, bridge variable prefixes were all over the place (`matrix_mautrix_telegram_*`, `matrix_heisenbridge_*`, `matrix_steam_bridge_*`, etc.). Now, they all follow the same pattern that bot roles (`matrix_bot_<name>_*`) have been using for years: the `matrix-bridge-mautrix-telegram` role uses `matrix_bridge_mautrix_telegram_*` variables, the `matrix-bridge-steam` role uses `matrix_bridge_steam_*` variables, and so on.
Only Ansible variables were renamed. Systemd service names, container names, `/matrix/*` directories, database names and usernames, and appservice registration contents (tokens, bot usernames) all remain the same. No data migration is necessary and bridges keep working as before, once you rename the variables in your `vars.yml` configuration file.
The playbook will let you know if your configuration still uses old-style variable names.
Here is the full rename map:
| Old variable prefix | New variable prefix |
|---------------------|---------------------|
| `matrix_appservice_discord_` | `matrix_bridge_appservice_discord_` |
| `matrix_appservice_irc_` | `matrix_bridge_appservice_irc_` |
| `matrix_beeper_linkedin_` | `matrix_bridge_beeper_linkedin_` |
| `matrix_heisenbridge_` | `matrix_bridge_heisenbridge_` |
| `matrix_hookshot_` | `matrix_bridge_hookshot_` |
| `matrix_mautrix_androidsms_` | `matrix_bridge_mautrix_wsproxy_androidsms_` |
| `matrix_mautrix_bluesky_` | `matrix_bridge_mautrix_bluesky_` |
| `matrix_mautrix_discord_` | `matrix_bridge_mautrix_discord_` |
| `matrix_mautrix_gmessages_` | `matrix_bridge_mautrix_gmessages_` |
| `matrix_mautrix_googlechat_` | `matrix_bridge_mautrix_googlechat_` |
| `matrix_mautrix_gvoice_` | `matrix_bridge_mautrix_gvoice_` |
| `matrix_mautrix_imessage_` | `matrix_bridge_mautrix_wsproxy_imessage_` |
| `matrix_mautrix_meta_instagram_` | `matrix_bridge_mautrix_meta_instagram_` |
| `matrix_mautrix_meta_messenger_` | `matrix_bridge_mautrix_meta_messenger_` |
| `matrix_mautrix_signal_` | `matrix_bridge_mautrix_signal_` |
| `matrix_mautrix_slack_` | `matrix_bridge_mautrix_slack_` |
| `matrix_mautrix_telegram_` | `matrix_bridge_mautrix_telegram_` |
| `matrix_mautrix_twitter_` | `matrix_bridge_mautrix_twitter_` |
| `matrix_mautrix_whatsapp_` | `matrix_bridge_mautrix_whatsapp_` |
| `matrix_mautrix_wsproxy_` | `matrix_bridge_mautrix_wsproxy_` |
| `matrix_meshtastic_relay_` | `matrix_bridge_meshtastic_relay_` |
| `matrix_mx_puppet_groupme_` | `matrix_bridge_mx_puppet_groupme_` |
| `matrix_mx_puppet_steam_` | `matrix_bridge_mx_puppet_steam_` |
| `matrix_postmoogle_` | `matrix_bridge_postmoogle_` |
| `matrix_rustpush_bridge_` | `matrix_bridge_rustpush_` |
| `matrix_sms_bridge_` | `matrix_bridge_sms_` |
| `matrix_steam_bridge_` | `matrix_bridge_steam_` |
| `matrix_wechat_` | `matrix_bridge_wechat_` |
A few special cases beyond the prefix map:
- `matrix_mautrix_signal_wsproxy_syncproxy_connection_string` (a variable of the mautrix-wsproxy role, despite its name) is now `matrix_bridge_mautrix_wsproxy_syncproxy_connection_string`
- `matrix_playbook_migration_matrix_postmoogle_migration_validation_enabled` is now `matrix_playbook_migration_matrix_bridge_postmoogle_migration_validation_enabled`
You can update your `vars.yml` file automatically with this `sed` command (on macOS, use `sed -i ''` instead of `sed -i`):
```sh
sed -i \
-e 's/matrix_appservice_discord_/matrix_bridge_appservice_discord_/g' \
-e 's/matrix_appservice_irc_/matrix_bridge_appservice_irc_/g' \
-e 's/matrix_beeper_linkedin_/matrix_bridge_beeper_linkedin_/g' \
-e 's/matrix_heisenbridge_/matrix_bridge_heisenbridge_/g' \
-e 's/matrix_hookshot_/matrix_bridge_hookshot_/g' \
-e 's/matrix_mautrix_androidsms_/matrix_bridge_mautrix_wsproxy_androidsms_/g' \
-e 's/matrix_mautrix_bluesky_/matrix_bridge_mautrix_bluesky_/g' \
-e 's/matrix_mautrix_discord_/matrix_bridge_mautrix_discord_/g' \
-e 's/matrix_mautrix_gmessages_/matrix_bridge_mautrix_gmessages_/g' \
-e 's/matrix_mautrix_googlechat_/matrix_bridge_mautrix_googlechat_/g' \
-e 's/matrix_mautrix_gvoice_/matrix_bridge_mautrix_gvoice_/g' \
-e 's/matrix_mautrix_imessage_/matrix_bridge_mautrix_wsproxy_imessage_/g' \
-e 's/matrix_mautrix_meta_instagram_/matrix_bridge_mautrix_meta_instagram_/g' \
-e 's/matrix_mautrix_meta_messenger_/matrix_bridge_mautrix_meta_messenger_/g' \
-e 's/matrix_mautrix_signal_wsproxy_syncproxy_connection_string/matrix_bridge_mautrix_wsproxy_syncproxy_connection_string/g' \
-e 's/matrix_mautrix_signal_/matrix_bridge_mautrix_signal_/g' \
-e 's/matrix_mautrix_slack_/matrix_bridge_mautrix_slack_/g' \
-e 's/matrix_mautrix_telegram_/matrix_bridge_mautrix_telegram_/g' \
-e 's/matrix_mautrix_twitter_/matrix_bridge_mautrix_twitter_/g' \
-e 's/matrix_mautrix_whatsapp_/matrix_bridge_mautrix_whatsapp_/g' \
-e 's/matrix_mautrix_wsproxy_/matrix_bridge_mautrix_wsproxy_/g' \
-e 's/matrix_meshtastic_relay_/matrix_bridge_meshtastic_relay_/g' \
-e 's/matrix_mx_puppet_groupme_/matrix_bridge_mx_puppet_groupme_/g' \
-e 's/matrix_mx_puppet_steam_/matrix_bridge_mx_puppet_steam_/g' \
-e 's/matrix_postmoogle_/matrix_bridge_postmoogle_/g' \
-e 's/matrix_rustpush_bridge_/matrix_bridge_rustpush_/g' \
-e 's/matrix_sms_bridge_/matrix_bridge_sms_/g' \
-e 's/matrix_steam_bridge_/matrix_bridge_steam_/g' \
-e 's/matrix_wechat_/matrix_bridge_wechat_/g' \
-e 's/matrix_playbook_migration_matrix_postmoogle_migration_validation_enabled/matrix_playbook_migration_matrix_bridge_postmoogle_migration_validation_enabled/g' \
vars.yml
```
The `sed` command only replaces prefixes followed by an underscore, so values that intentionally match old prefixes (like the default database names, e.g. `matrix_mautrix_telegram`) are not affected.
**Note**: if you have defined your own custom variables whose names embed an old prefix (e.g. `vault_matrix_postmoogle_password` referencing a secret in an Ansible Vault file), the `sed` command renames such references too. Either rename your custom variables to match (including their definitions in encrypted vault files, which `sed` cannot reach), or revert those spots manually.
# 2026-07-15
## Google Voice bridging
The playbook can now bridge [Google Voice](https://voice.google.com/) via the [mautrix-gvoice](https://github.com/mautrix/gvoice) bridge. Text and media flow both ways, and portal rooms build themselves for your recent conversations.
Login is by cookie, not a paired phone: you copy the cookies from a browser signed in to voice.google.com and hand them to the bot. Google expires them on its own schedule, so expect to log in again every so often. See [Setting up Mautrix Google Voice bridging](./docs/configuring-playbook-bridge-mautrix-gvoice.md) to get started.
## matrix-appservice-kakaotalk has been removed from the playbook
The [matrix-appservice-kakaotalk](./docs/configuring-playbook-bridge-appservice-kakaotalk.md) bridge has been removed from the playbook. This component could only be installed by self-building its source code, and its upstream repository has become unreachable, which makes installation impossible. The bridge was also based on the unmaintained node-kakao library, and there have been reports that using it may get KakaoTalk accounts banned.
The playbook will let you know if you're using any `matrix_appservice_kakaotalk_*` variables. You'll need to remove them from `vars.yml` and potentially [uninstall the component manually](./docs/configuring-playbook-bridge-appservice-kakaotalk.md#uninstalling-the-component-manually).
## Dedicated CAPTCHA variables for Matrix Authentication Service
[Matrix Authentication Service](./docs/configuring-playbook-matrix-authentication-service.md) can now be protected with CAPTCHA (ReCaptcha v2, Cloudflare Turnstile, or hCaptcha) via dedicated variables, instead of going through `matrix_authentication_service_configuration_extension_yaml`. See the [captcha documentation](./docs/configuring-captcha.md#matrix-authentication-service) for details.
# 2026-07-14
## The playbook no longer ships a custom welcome page for Element Web
Element Web [redesigned its welcome page](https://github.com/element-hq/element-web/pull/33211) (the screen shown at `/#/welcome` before logging in) into a built-in component and no longer loads a custom `welcome.html` file by default. Since the playbook upgraded to an Element Web version containing that change (spring 2026), the custom welcome page the playbook installed (and the variables customizing it) had silently stopped having any effect.
The playbook now embraces the new upstream behavior and no longer ships its own `welcome.html`. The following variables have been removed and the playbook will let you know if you're still using them: `matrix_client_element_welcome_headline`, `matrix_client_element_welcome_text`, `matrix_client_element_welcome_logo_link` and `matrix_client_element_page_template_welcome_path`.
Most welcome page customizations keep working, because they go through Element Web's branding configuration, which the new welcome page still honors:
- a custom logo, via `matrix_client_element_welcome_logo` (or `matrix_client_element_branding_auth_header_logo_url`)
- a custom background, via `matrix_client_element_branding_welcome_background_url`
If you need a fully custom welcome page, you can self-host an HTML page and point Element Web at it, like this:
```yaml
matrix_client_element_configuration_extension_json: |
{
"embedded_pages": {
"welcome_url": "https://example.com/my-welcome.html"
}
}
```
## BorgBackup now includes Synapse's local thumbnails
For Synapse servers, the built-in [BorgBackup](./docs/configuring-playbook-backup-borg.md) integration no longer excludes the media store's `local_thumbnails` directory from backups.
Synapse only generates thumbnails of local media at upload time (unless `dynamic_thumbnails` is enabled, which the playbook does not do), and there is no tooling to regenerate them. Restoring a backup made with the previous exclusion list therefore left all previously uploaded local images without thumbnails. The [official Synapse backup guide](https://element-hq.github.io/synapse/latest/usage/administration/backups.html) recommends backing this directory up, and the playbook now follows that recommendation.
Expect your backups to grow somewhat, depending on how much image media your local users have uploaded. If you prefer the old behavior, you can redefine `backup_borg_location_exclude_patterns` in your `vars.yml`.
# 2026-07-12 # 2026-07-12
## matrix-registration-bot has been removed from the playbook ## matrix-registration-bot has been removed from the playbook
+1 -1
View File
@@ -116,7 +116,6 @@ Bridges can be used to connect your Matrix installation with third-party communi
| [mautrix-slack](https://github.com/mautrix/slack) | ❌ | Bridge to [Slack](https://slack.com/) | [Link](docs/configuring-playbook-bridge-mautrix-slack.md) | | [mautrix-slack](https://github.com/mautrix/slack) | ❌ | Bridge to [Slack](https://slack.com/) | [Link](docs/configuring-playbook-bridge-mautrix-slack.md) |
| [mautrix-telegram](https://github.com/mautrix/telegram) | ❌ | Bridge to [Telegram](https://telegram.org/) | [Link](docs/configuring-playbook-bridge-mautrix-telegram.md) | | [mautrix-telegram](https://github.com/mautrix/telegram) | ❌ | Bridge to [Telegram](https://telegram.org/) | [Link](docs/configuring-playbook-bridge-mautrix-telegram.md) |
| [mautrix-gmessages](https://github.com/mautrix/gmessages) | ❌ | Bridge to [Google Messages](https://messages.google.com/) | [Link](docs/configuring-playbook-bridge-mautrix-gmessages.md) | | [mautrix-gmessages](https://github.com/mautrix/gmessages) | ❌ | Bridge to [Google Messages](https://messages.google.com/) | [Link](docs/configuring-playbook-bridge-mautrix-gmessages.md) |
| [mautrix-gvoice](https://github.com/mautrix/gvoice) | ❌ | Bridge to [Google Voice](https://voice.google.com/) | [Link](docs/configuring-playbook-bridge-mautrix-gvoice.md) |
| [mautrix-whatsapp](https://github.com/mautrix/whatsapp) | ❌ | Bridge to [WhatsApp](https://www.whatsapp.com/) | [Link](docs/configuring-playbook-bridge-mautrix-whatsapp.md) | | [mautrix-whatsapp](https://github.com/mautrix/whatsapp) | ❌ | Bridge to [WhatsApp](https://www.whatsapp.com/) | [Link](docs/configuring-playbook-bridge-mautrix-whatsapp.md) |
| [mautrix-wsproxy](https://github.com/mautrix/wsproxy) | ❌ | Bridge to Android SMS or Apple iMessage | [Link](docs/configuring-playbook-bridge-mautrix-wsproxy.md) | | [mautrix-wsproxy](https://github.com/mautrix/wsproxy) | ❌ | Bridge to Android SMS or Apple iMessage | [Link](docs/configuring-playbook-bridge-mautrix-wsproxy.md) |
| [matrix-rustpush-bridge](https://github.com/jasonlaguidice/imessage) | ❌ | Bridge to [iMessage](https://support.apple.com/messages) via Apple Push Notification service | [Link](docs/configuring-playbook-bridge-rustpush.md) | | [matrix-rustpush-bridge](https://github.com/jasonlaguidice/imessage) | ❌ | Bridge to [iMessage](https://support.apple.com/messages) via Apple Push Notification service | [Link](docs/configuring-playbook-bridge-rustpush.md) |
@@ -127,6 +126,7 @@ Bridges can be used to connect your Matrix installation with third-party communi
| [mautrix-signal](https://github.com/mautrix/signal) | ❌ | Bridge to [Signal](https://www.signal.org/) | [Link](docs/configuring-playbook-bridge-mautrix-signal.md) | | [mautrix-signal](https://github.com/mautrix/signal) | ❌ | Bridge to [Signal](https://www.signal.org/) | [Link](docs/configuring-playbook-bridge-mautrix-signal.md) |
| [beeper-linkedin](https://github.com/beeper/linkedin) | ❌ | Bridge to [LinkedIn](https://www.linkedin.com/) | [Link](docs/configuring-playbook-bridge-beeper-linkedin.md) | | [beeper-linkedin](https://github.com/beeper/linkedin) | ❌ | Bridge to [LinkedIn](https://www.linkedin.com/) | [Link](docs/configuring-playbook-bridge-beeper-linkedin.md) |
| [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) | ❌ | Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) | [Link](docs/configuring-playbook-bridge-appservice-irc.md) | | [matrix-appservice-irc](https://github.com/matrix-org/matrix-appservice-irc) | ❌ | Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) | [Link](docs/configuring-playbook-bridge-appservice-irc.md) |
| [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) | ❌ | Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) | [Link](docs/configuring-playbook-bridge-appservice-kakaotalk.md) |
| [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord) | ❌ | Bridge to [Discord](https://discordapp.com/) | [Link](docs/configuring-playbook-bridge-appservice-discord.md) | | [matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord) | ❌ | Bridge to [Discord](https://discordapp.com/) | [Link](docs/configuring-playbook-bridge-appservice-discord.md) |
| [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) | ❌ | Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular | [Link](docs/configuring-playbook-bridge-hookshot.md) | | [matrix-hookshot](https://github.com/matrix-org/matrix-hookshot) | ❌ | Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular | [Link](docs/configuring-playbook-bridge-hookshot.md) |
| [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) | ❌ | Bridge to SMS | [Link](docs/configuring-playbook-bridge-matrix-bridge-sms.md) | | [matrix-sms-bridge](https://github.com/benkuly/matrix-sms-bridge) | ❌ | Bridge to SMS | [Link](docs/configuring-playbook-bridge-matrix-bridge-sms.md) |
+3 -3
View File
@@ -30,12 +30,12 @@ fi
cp -ar $messenger_role_path $instagram_role_path cp -ar $messenger_role_path $instagram_role_path
find "$instagram_role_path" -type f | while read -r file; do find "$instagram_role_path" -type f | while read -r file; do
sed --in-place 's/matrix_bridge_mautrix_meta_messenger_/matrix_bridge_mautrix_meta_instagram_/g' "$file" sed --in-place 's/matrix_mautrix_meta_messenger_/matrix_mautrix_meta_instagram_/g' "$file"
sed --in-place 's/mautrix-meta-messenger/mautrix-meta-instagram/g' "$file" sed --in-place 's/mautrix-meta-messenger/mautrix-meta-instagram/g' "$file"
done done
sed --in-place 's/matrix_bridge_mautrix_meta_instagram_meta_mode: \(.*\)/matrix_bridge_mautrix_meta_instagram_meta_mode: instagram/g' $instagram_role_path/defaults/main.yml sed --in-place 's/matrix_mautrix_meta_instagram_meta_mode: \(.*\)/matrix_mautrix_meta_instagram_meta_mode: instagram/g' $instagram_role_path/defaults/main.yml
sed --in-place 's/matrix_bridge_mautrix_meta_instagram_identifier: \(.*\)/matrix_bridge_mautrix_meta_instagram_identifier: matrix-mautrix-meta-instagram/g' $instagram_role_path/defaults/main.yml sed --in-place 's/matrix_mautrix_meta_instagram_identifier: \(.*\)/matrix_mautrix_meta_instagram_identifier: matrix-mautrix-meta-instagram/g' $instagram_role_path/defaults/main.yml
# Create the README.md file with the license header # Create the README.md file with the license header
cat > $instagram_role_path/README.md << 'EOF' cat > $instagram_role_path/README.md << 'EOF'
-2
View File
@@ -90,8 +90,6 @@ If your server and services experience issues, feel free to come to [our support
- [Self-building](self-building.md) - [Self-building](self-building.md)
- [Style guide for playbook developers](style-guide.md)
- [Uninstalling](uninstalling.md) - [Uninstalling](uninstalling.md)
- [Updating users passwords](updating-users-passwords.md) - [Updating users passwords](updating-users-passwords.md)
+2 -4
View File
@@ -50,8 +50,6 @@ This ensures that:
You can either [run Ansible in a container on the Matrix server itself](#running-ansible-in-a-container-on-the-matrix-server-itself) or [run Ansible in a container on another computer (not the Matrix server)](#running-ansible-in-a-container-on-another-computer-not-the-matrix-server). You can either [run Ansible in a container on the Matrix server itself](#running-ansible-in-a-container-on-the-matrix-server-itself) or [run Ansible in a container on another computer (not the Matrix server)](#running-ansible-in-a-container-on-another-computer-not-the-matrix-server).
💡 If you use [Visual Studio Code](https://code.visualstudio.com/) or [GitHub Codespaces](https://github.com/features/codespaces), the playbook also ships a [dev container](https://containers.dev/) configuration (see the `.devcontainer/` directory) based on this same Ansible Docker image, which can prepare such a containerized Ansible environment for you automatically.
### Running Ansible in a container on the Matrix server itself ### Running Ansible in a container on the Matrix server itself
To run Ansible in a (Docker) container on the Matrix server itself, you need to have a working Docker installation. Docker is normally installed by the playbook, so this may be a bit of a chicken and egg problem. To solve it: To run Ansible in a (Docker) container on the Matrix server itself, you need to have a working Docker installation. Docker is normally installed by the playbook, so this may be a bit of a chicken and egg problem. To solve it:
@@ -76,7 +74,7 @@ docker run \
-w /work \ -w /work \
--mount type=bind,src=`pwd`,dst=/work \ --mount type=bind,src=`pwd`,dst=/work \
--entrypoint=/bin/sh \ --entrypoint=/bin/sh \
ghcr.io/devture/ansible:14.0.0-r0-0 ghcr.io/devture/ansible:11.6.0-r0-0
``` ```
Once you execute the above command, you'll be dropped into a `/work` directory inside a Docker container. The `/work` directory contains the playbook's code. Once you execute the above command, you'll be dropped into a `/work` directory inside a Docker container. The `/work` directory contains the playbook's code.
@@ -97,7 +95,7 @@ docker run \
--mount type=bind,src=`pwd`,dst=/work \ --mount type=bind,src=`pwd`,dst=/work \
--mount type=bind,src=$HOME/.ssh/id_ed25519,dst=/root/.ssh/id_ed25519,ro \ --mount type=bind,src=$HOME/.ssh/id_ed25519,dst=/root/.ssh/id_ed25519,ro \
--entrypoint=/bin/sh \ --entrypoint=/bin/sh \
ghcr.io/devture/ansible:14.0.0-r0-0 ghcr.io/devture/ansible:11.6.0-r0-0
``` ```
The above command tries to mount an SSH key (`$HOME/.ssh/id_ed25519`) into the container (at `/root/.ssh/id_ed25519`). If your SSH key is at a different path (not in `$HOME/.ssh/id_ed25519`), adjust that part. The above command tries to mount an SSH key (`$HOME/.ssh/id_ed25519`) into the container (at `/root/.ssh/id_ed25519`). If your SSH key is at a different path (not in `$HOME/.ssh/id_ed25519`), adjust that part.
-15
View File
@@ -15,8 +15,6 @@ Captcha can be enabled for this home server. This file explains how to do that.
The captcha mechanism used is Google's [ReCaptcha](https://www.google.com/recaptcha/). This requires API keys from Google. If your homeserver is Dendrite then [hCapcha](https://www.hcaptcha.com) can be used instead. The captcha mechanism used is Google's [ReCaptcha](https://www.google.com/recaptcha/). This requires API keys from Google. If your homeserver is Dendrite then [hCapcha](https://www.hcaptcha.com) can be used instead.
If you are using [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md), captcha is configured there instead (it handles registration), and [Cloudflare Turnstile](https://www.cloudflare.com/application-services/products/turnstile/) is supported as well. See [Matrix Authentication Service](#matrix-authentication-service) below.
## ReCaptcha ## ReCaptcha
### Getting keys ### Getting keys
@@ -63,16 +61,3 @@ matrix_dendrite_client_api_recaptcha_api_js_url: 'https://js.hcaptcha.com/1/api.
matrix_dendrite_client_api_recaptcha_form_field: 'h-captcha-response' matrix_dendrite_client_api_recaptcha_form_field: 'h-captcha-response'
matrix_dendrite_client_api_recaptcha_sitekey_class: 'h-captcha' matrix_dendrite_client_api_recaptcha_sitekey_class: 'h-captcha'
``` ```
## Matrix Authentication Service
When [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) is enabled, registration and other account operations are handled by it, so captcha protection is configured there (the Synapse and Dendrite settings above do not apply).
Matrix Authentication Service supports [ReCaptcha v2](http://www.google.com/recaptcha/admin), [Cloudflare Turnstile](https://www.cloudflare.com/application-services/products/turnstile/) and [hCaptcha](https://dashboard.hcaptcha.com/sites/new). Obtain a site/secret key pair from your chosen service, then add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
# Valid values: recaptcha_v2, cloudflare_turnstile, hcaptcha
matrix_authentication_service_config_captcha_service: recaptcha_v2
matrix_authentication_service_config_captcha_site_key: 'YOUR_SITE_KEY'
matrix_authentication_service_config_captcha_secret_key: 'YOUR_SECRET_KEY'
```
@@ -26,9 +26,9 @@ Create a Discord Application [here](https://discordapp.com/developers/applicatio
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_appservice_discord_enabled: true matrix_appservice_discord_enabled: true
matrix_bridge_appservice_discord_client_id: "YOUR DISCORD APP CLIENT ID" matrix_appservice_discord_client_id: "YOUR DISCORD APP CLIENT ID"
matrix_bridge_appservice_discord_bot_token: "YOUR DISCORD APP BOT TOKEN" matrix_appservice_discord_bot_token: "YOUR DISCORD APP BOT TOKEN"
# As of Synapse 1.90.0, uncomment to enable the backwards compatibility (https://matrix-org.github.io/synapse/latest/upgrade#upgrading-to-v1900) that this bridge needs. # As of Synapse 1.90.0, uncomment to enable the backwards compatibility (https://matrix-org.github.io/synapse/latest/upgrade#upgrading-to-v1900) that this bridge needs.
# Note: This deprecated method is considered insecure. # Note: This deprecated method is considered insecure.
@@ -44,7 +44,7 @@ There are some additional things you may wish to configure about the bridge.
Take a look at: Take a look at:
- `roles/custom/matrix-bridge-appservice-discord/defaults/main.yml` for some variables that you can customize via your `vars.yml` file - `roles/custom/matrix-bridge-appservice-discord/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
- `roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_appservice_discord_configuration_extension_yaml` variable - `roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_discord_configuration_extension_yaml` variable
## Installing ## Installing
@@ -65,7 +65,7 @@ The shortcut commands with the [`just` program](just.md) are also available: `ju
Self-service bridging allows you to bridge specific and existing Matrix rooms to specific Discord rooms. To enable it, add the following configuration to your `vars.yml` file: Self-service bridging allows you to bridge specific and existing Matrix rooms to specific Discord rooms. To enable it, add the following configuration to your `vars.yml` file:
```yaml ```yaml
matrix_bridge_appservice_discord_bridge_enableSelfServiceBridging: true matrix_appservice_discord_bridge_enableSelfServiceBridging: true
``` ```
**Note**: If self-service bridging is not enabled, `!discord help` commands will return no results. **Note**: If self-service bridging is not enabled, `!discord help` commands will return no results.
@@ -91,14 +91,14 @@ All Matrix rooms created this way are **listed publicly** by default, and you wi
To disable portal bridging, add the following configuration to your `vars.yml` file: To disable portal bridging, add the following configuration to your `vars.yml` file:
```yaml ```yaml
matrix_bridge_appservice_discord_bridge_disablePortalBridging: true matrix_appservice_discord_bridge_disablePortalBridging: true
``` ```
### Usage ### Usage
To get started with Portal Bridging: To get started with Portal Bridging:
1. To invite the bot to Discord, retrieve the invite link from the `{{ matrix_bridge_appservice_discord_config_path }}/invite_link` file on the server (this defaults to `/matrix/appservice-discord/config/invite_link`). You need to peek at the file on the server via SSH, etc., because it's not available via HTTP(S). 1. To invite the bot to Discord, retrieve the invite link from the `{{ matrix_appservice_discord_config_path }}/invite_link` file on the server (this defaults to `/matrix/appservice-discord/config/invite_link`). You need to peek at the file on the server via SSH, etc., because it's not available via HTTP(S).
2. Room addresses follow this syntax: `#_discord_<guildID>_<channelID>`. You can easily find the guild and channel IDs by logging into Discord in a browser and opening the desired channel. The URL will have this format: `discord.com/channels/<guildID>/<channelID>`. 2. Room addresses follow this syntax: `#_discord_<guildID>_<channelID>`. You can easily find the guild and channel IDs by logging into Discord in a browser and opening the desired channel. The URL will have this format: `discord.com/channels/<guildID>/<channelID>`.
3. Once you have figured out the appropriate room address, you can join by doing `/join #_discord_<guildID>_<channelID>` in your Matrix client. 3. Once you have figured out the appropriate room address, you can join by doing `/join #_discord_<guildID>_<channelID>` in your Matrix client.
@@ -124,7 +124,7 @@ As with all other services, you can find the logs in [systemd-journald](https://
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 (adapt to your needs) and re-run the playbook: 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 (adapt to your needs) and re-run the playbook:
```yaml ```yaml
matrix_bridge_appservice_discord_configuration_extension_yaml: | matrix_appservice_discord_configuration_extension_yaml: |
logging: logging:
# What level should the logger output to the console at. # What level should the logger output to the console at.
console: "info" # Valid values: silent, error, warn, http, info, verbose, silly console: "info" # Valid values: silent, error, warn, http, info, verbose, silly
@@ -20,9 +20,9 @@ See the project's [documentation](https://github.com/matrix-org/matrix-appservic
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_appservice_irc_enabled: true matrix_appservice_irc_enabled: true
matrix_bridge_appservice_irc_ircService_servers: matrix_appservice_irc_ircService_servers:
irc.example.com: irc.example.com:
name: "ExampleNet" name: "ExampleNet"
port: 6697 port: 6697
@@ -76,7 +76,7 @@ There are some additional things you may wish to configure about the bridge.
Take a look at: Take a look at:
- `roles/custom/matrix-bridge-appservice-irc/defaults/main.yml` for some variables that you can customize via your `vars.yml` file - `roles/custom/matrix-bridge-appservice-irc/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
- `roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_appservice_irc_configuration_extension_yaml` variable - `roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_irc_configuration_extension_yaml` variable
## Installing ## Installing
@@ -104,7 +104,7 @@ As with all other services, you can find the logs in [systemd-journald](https://
The default logging level for this component is `debug`, and the log is output to the console only. If you want to change the verbosity or enable logging to a file, add the following configuration to your `vars.yml` file (adapt to your needs) and re-run the playbook: The default logging level for this component is `debug`, and the log is output to the console only. If you want to change the verbosity or enable logging to a file, add the following configuration to your `vars.yml` file (adapt to your needs) and re-run the playbook:
```yaml ```yaml
matrix_bridge_appservice_irc_configuration_extension_yaml: | matrix_appservice_irc_configuration_extension_yaml: |
logging: logging:
# Level to log on console/logfile. # Level to log on console/logfile.
# Valid values: error, warn, info, debug # Valid values: error, warn, info, debug
@@ -1,26 +1,75 @@
<!-- <!--
SPDX-FileCopyrightText: 2022 Dennis Ciba SPDX-FileCopyrightText: 2022 Dennis Ciba
SPDX-FileCopyrightText: 2022 - 2026 Slavi Pantaleev SPDX-FileCopyrightText: 2022 Slavi Pantaleev
SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara SPDX-FileCopyrightText: 2024 - 2025 Suguru Hirahara
SPDX-FileCopyrightText: 2024 MDAD project contributors SPDX-FileCopyrightText: 2024 MDAD project contributors
SPDX-License-Identifier: AGPL-3.0-or-later SPDX-License-Identifier: AGPL-3.0-or-later
--> -->
# Setting up Appservice Kakaotalk bridging (optional, removed) # Setting up Appservice Kakaotalk bridging (optional)
🪦 The playbook used to be able to install and configure [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) (a bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG)), but no longer includes this component. The playbook can install and configure [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) for you, for bridging to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG). This bridge is based on [node-kakao](https://github.com/storycraft/node-kakao) (now unmaintained) and some [mautrix-facebook](https://github.com/mautrix/facebook) code.
The bridge could only be installed by self-building its source code, and its upstream repository has become unreachable, which makes installation impossible. The bridge was also based on the now-unmaintained [node-kakao](https://github.com/storycraft/node-kakao) library, and there have been reports that using it may get your Kakaotalk account banned. See the project's [documentation](https://src.miscworks.net/fair/matrix-appservice-kakaotalk/src/branch/master/README.md) to learn what it does and why it might be useful to you.
## Uninstalling the component manually > [!WARNING]
> There have been recent reports (~2022-09-16) that **using this bridge may get your account banned**.
If you still have matrix-appservice-kakaotalk installed on your Matrix server, the playbook can no longer help you uninstall it and you will need to do it manually. To uninstall manually, run these commands on the server: ## Prerequisite (optional)
```sh ### Enable Shared Secret Auth
systemctl disable --now matrix-appservice-kakaotalk.service
systemctl disable --now matrix-appservice-kakaotalk-node.service 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 [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook.
rm -rf /matrix/appservice-kakaotalk See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-puppeting-optional) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about setting up Double Puppeting.
**Note**: double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future.
## Adjusting the playbook configuration
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
matrix_appservice_kakaotalk_enabled: true
```
### Extending the configuration
There are some additional things you may wish to configure about the bridge.
Take a look at:
- `roles/custom/matrix-bridge-appservice-kakaotalk/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
- `roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_kakaotalk_configuration_extension_yaml` variable
## Installing
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`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.
## Usage
To use the bridge, you need to start a chat with `@kakaotalkbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain).
You then need to send `login --save EMAIL_OR_PHONE_NUMBER` to the bridge bot to enable bridging for your Kakaotalk account. The `--save` flag may be omitted, if you'd rather not save your password.
## Troubleshooting
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-appservice-kakaotalk`.
### Increase logging verbosity
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:
```yaml
matrix_appservice_kakaotalk_logging_level: DEBUG
``` ```
@@ -29,7 +29,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_beeper_linkedin_enabled: true matrix_beeper_linkedin_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -68,7 +68,7 @@ As with all other services, you can find the logs in [systemd-journald](https://
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: 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:
```yaml ```yaml
matrix_bridge_beeper_linkedin_logging_level: DEBUG matrix_beeper_linkedin_logging_level: DEBUG
``` ```
### Bridge asking for 2FA even if you don't have 2FA enabled ### Bridge asking for 2FA even if you don't have 2FA enabled
@@ -25,26 +25,26 @@ If you wish to adjust it, see the section [below](#adjusting-the-heisenbridge-ur
To enable Heisenbridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable Heisenbridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_heisenbridge_enabled: true matrix_heisenbridge_enabled: true
# Setting the owner is optional as the first local user to DM `@heisenbridge:example.com` will be made the owner. # Setting the owner is optional as the first local user to DM `@heisenbridge:example.com` will be made the owner.
# If you are not using a local user you must set it as otherwise you can't DM it at all. # If you are not using a local user you must set it as otherwise you can't DM it at all.
matrix_bridge_heisenbridge_owner: "@alice:{{ matrix_domain }}" matrix_heisenbridge_owner: "@alice:{{ matrix_domain }}"
# Uncomment to enable identd on host port 113/TCP (optional) # Uncomment to enable identd on host port 113/TCP (optional)
# matrix_bridge_heisenbridge_identd_enabled: true # matrix_heisenbridge_identd_enabled: true
``` ```
### Adjusting the Heisenbridge URL (optional) ### Adjusting the Heisenbridge URL (optional)
By tweaking the `matrix_bridge_heisenbridge_hostname` and `matrix_bridge_heisenbridge_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one. By tweaking the `matrix_heisenbridge_hostname` and `matrix_heisenbridge_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one.
Example additional configuration for your `vars.yml` file: Example additional configuration for your `vars.yml` file:
```yaml ```yaml
# Change the default hostname and path prefix # Change the default hostname and path prefix
matrix_bridge_heisenbridge_hostname: heisenbridge.example.com matrix_heisenbridge_hostname: heisenbridge.example.com
matrix_bridge_heisenbridge_path_prefix: / matrix_heisenbridge_path_prefix: /
``` ```
If you've changed the default hostname, you may need to create a CNAME record for the Heisenbridge domain (`heisenbridge.example.com`), which targets `matrix.example.com`. If you've changed the default hostname, you may need to create a CNAME record for the Heisenbridge domain (`heisenbridge.example.com`), which targets `matrix.example.com`.
+25 -35
View File
@@ -29,30 +29,20 @@ You need to download the private key file, if you will install the file manually
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `GITHUB_PRIVATE_KEY_HERE` with the one created [above](#download-github-app-private-key). Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `GITHUB_PRIVATE_KEY_HERE` with the one created [above](#download-github-app-private-key).
```yaml ```yaml
matrix_bridge_hookshot_enabled: true matrix_hookshot_enabled: true
# Uncomment to enable end-to-bridge encryption. # Uncomment to enable end-to-bridge encryption.
# See: https://matrix-org.github.io/matrix-hookshot/latest/advanced/encryption.html # See: https://matrix-org.github.io/matrix-hookshot/latest/advanced/encryption.html
# matrix_bridge_hookshot_encryption_enabled: true # matrix_hookshot_encryption_enabled: true
# Uncomment and paste the contents of GitHub app private key to enable GitHub bridge. # Uncomment and paste the contents of GitHub app private key to enable GitHub bridge.
# Alternatively, you can use one of the other methods explained below on the "Manage GitHub Private Key with aux role" section. # Alternatively, you can use one of the other methods explained below on the "Manage GitHub Private Key with aux role" section.
# matrix_bridge_hookshot_github_private_key: "GITHUB_PRIVATE_KEY_HERE" # matrix_hookshot_github_private_key: "GITHUB_PRIVATE_KEY_HERE"
``` ```
> [!NOTE] For each of the services (GitHub, GitLab, Jira, Figma, and generic webhooks) fill in the respective variables `matrix_hookshot_service_*` listed in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) as required.
> End-to-bridge encryption also requires the homeserver to support (and have enabled) [MSC2409](https://github.com/matrix-org/matrix-spec-proposals/pull/2409) and [MSC3202](https://github.com/matrix-org/matrix-spec-proposals/pull/3202). If you are using Synapse, enable them by also adding this to your `vars.yml` file:
>
> ```yaml
> matrix_synapse_experimental_features_msc2409_to_device_messages_enabled: true
> matrix_synapse_experimental_features_msc3202_transaction_extensions_enabled: true
> ```
>
> These are experimental homeserver-wide features (as is Hookshot's encryption support itself), so enable them deliberately.
For each of the services (GitHub, GitLab, Jira, Figma, and generic webhooks) fill in the respective variables `matrix_bridge_hookshot_service_*` listed in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) as required. Take special note of the `matrix_hookshot_*_enabled` variables. Services that need no further configuration are enabled by default (GitLab and generic webhooks), while you must first add the required configuration and enable the others (GitHub, Jira, and Figma).
Take special note of the `matrix_bridge_hookshot_*_enabled` variables. Services that need no further configuration are enabled by default (GitLab and generic webhooks), while you must first add the required configuration and enable the others (GitHub, Jira, and Figma).
### Extending the configuration ### Extending the configuration
@@ -61,7 +51,7 @@ There are some additional things you may wish to configure about the bridge.
Take a look at: Take a look at:
- `roles/custom/matrix-bridge-hookshot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file - `roles/custom/matrix-bridge-hookshot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
- `roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_hookshot_configuration_extension_yaml` and `matrix_bridge_hookshot_registration_extension_yaml` variables - `roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_hookshot_configuration_extension_yaml` and `matrix_hookshot_registration_extension_yaml` variables
Refer the [official instructions](https://matrix-org.github.io/matrix-hookshot/latest/setup.html) and the comments in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) to learn what the individual options do. Refer the [official instructions](https://matrix-org.github.io/matrix-hookshot/latest/setup.html) and the comments in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) to learn what the individual options do.
@@ -106,31 +96,31 @@ Unless indicated otherwise, the following endpoints are reachable on your `matri
| Listener | Default path | Variable | Used as | | Listener | Default path | Variable | Used as |
|---|---|---|---| |---|---|---|---|
| - | `/hookshot/webhooks/` | `matrix_bridge_hookshot_webhook_endpoint` | Webhook-prefix, which affects all webhook-related URLs below | | - | `/hookshot/webhooks/` | `matrix_hookshot_webhook_endpoint` | Webhook-prefix, which affects all webhook-related URLs below |
| generic | `/hookshot/webhooks/webhook` | `matrix_bridge_hookshot_generic_endpoint` | Generic webhooks | | generic | `/hookshot/webhooks/webhook` | `matrix_hookshot_generic_endpoint` | Generic webhooks |
| github oauth | `/hookshot/webhooks/oauth` | `matrix_bridge_hookshot_github_oauth_endpoint` | GitHub "Callback URL" | | github oauth | `/hookshot/webhooks/oauth` | `matrix_hookshot_github_oauth_endpoint` | GitHub "Callback URL" |
| jira oauth | `/hookshot/webhooks/jira/oauth` | `matrix_bridge_hookshot_jira_oauth_endpoint` | Jira OAuth | | jira oauth | `/hookshot/webhooks/jira/oauth` | `matrix_hookshot_jira_oauth_endpoint` | Jira OAuth |
| figma endpoint | `/hookshot/webhooks/figma/webhook` | `matrix_bridge_hookshot_figma_endpoint` | Figma | | figma endpoint | `/hookshot/webhooks/figma/webhook` | `matrix_hookshot_figma_endpoint` | Figma |
| appservice | `/hookshot/_matrix/app/` | `matrix_bridge_hookshot_appservice_endpoint` | Matrix server | | appservice | `/hookshot/_matrix/app/` | `matrix_hookshot_appservice_endpoint` | Matrix server |
| widgets | `/hookshot/widgetapi/` | `matrix_bridge_hookshot_widgets_endpoint` | Widgets | | widgets | `/hookshot/widgetapi/` | `matrix_hookshot_widgets_endpoint` | Widgets |
Also see the various `matrix_bridge_hookshot_container_labels_*` variables in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml), which expose URLs publicly. Also see the various `matrix_hookshot_container_labels_*` variables in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml), which expose URLs publicly.
The different listeners are also reachable *internally* in the docker-network via the container's name (configured by `matrix_bridge_hookshot_container_url`) and on different ports (e.g. `matrix_bridge_hookshot_appservice_port`). Read [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) in detail for more info. The different listeners are also reachable *internally* in the docker-network via the container's name (configured by `matrix_hookshot_container_url`) and on different ports (e.g. `matrix_hookshot_appservice_port`). Read [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) in detail for more info.
### Manage GitHub Private Key with aux role ### Manage GitHub Private Key with aux role
The GitHub bridge requires you to install a private key file. This can be done in multiple ways: The GitHub bridge requires you to install a private key file. This can be done in multiple ways:
- copy the *contents* of the downloaded file and set the variable `matrix_bridge_hookshot_github_private_key` to the contents (see example in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml)). - copy the *contents* of the downloaded file and set the variable `matrix_hookshot_github_private_key` to the contents (see example in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml)).
- somehow copy the file to the path `{{ matrix_bridge_hookshot_base_path }}/{{ matrix_bridge_hookshot_github_private_key_file }}` (default: `/matrix/hookshot/private-key.pem`) on the server manually. - somehow copy the file to the path `{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}` (default: `/matrix/hookshot/private-key.pem`) on the server manually.
- use the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) to copy the file from an arbitrary path on your ansible client to the correct path on the server. - use the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) to copy the file from an arbitrary path on your ansible client to the correct path on the server.
To use the `aux` role, make sure the `matrix_bridge_hookshot_github_private_key` variable is empty. Then add the following configuration to your `vars.yml` file: To use the `aux` role, make sure the `matrix_hookshot_github_private_key` variable is empty. Then add the following configuration to your `vars.yml` file:
```yaml ```yaml
aux_file_definitions: aux_file_definitions:
- dest: "{{ matrix_bridge_hookshot_base_path }}/{{ matrix_bridge_hookshot_github_private_key_file }}" - dest: "{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}"
content: "{{ lookup('file', '/path/to/your-github-private-key.pem') }}" content: "{{ lookup('file', '/path/to/your-github-private-key.pem') }}"
mode: '0400' mode: '0400'
owner: "{{ matrix_user_name }}" owner: "{{ matrix_user_name }}"
@@ -149,23 +139,23 @@ To enable the metrics, add the following configuration to your `vars.yml` file:
```yaml ```yaml
# Expose metrics (locally, on the container network). # Expose metrics (locally, on the container network).
matrix_bridge_hookshot_metrics_enabled: true matrix_hookshot_metrics_enabled: true
``` ```
**To collect metrics from an external Prometheus server**, besides enabling metrics as described above, you will also need to enable metrics exposure on `https://matrix.example.com/metrics/hookshot` by adding the following configuration to your `vars.yml` file: **To collect metrics from an external Prometheus server**, besides enabling metrics as described above, you will also need to enable metrics exposure on `https://matrix.example.com/metrics/hookshot` by adding the following configuration to your `vars.yml` file:
```yaml ```yaml
matrix_bridge_hookshot_metrics_proxying_enabled: true matrix_hookshot_metrics_proxying_enabled: true
``` ```
By default metrics are exposed publicly **without** password-protection. To password-protect the metrics with dedicated credentials, add the following configuration to your `vars.yml` file: By default metrics are exposed publicly **without** password-protection. To password-protect the metrics with dedicated credentials, add the following configuration to your `vars.yml` file:
```yaml ```yaml
matrix_bridge_hookshot_container_labels_metrics_middleware_basic_auth_enabled: true matrix_hookshot_container_labels_metrics_middleware_basic_auth_enabled: true
matrix_bridge_hookshot_container_labels_metrics_middleware_basic_auth_users: '' matrix_hookshot_container_labels_metrics_middleware_basic_auth_users: ''
``` ```
To `matrix_bridge_hookshot_container_labels_metrics_middleware_basic_auth_users`, set the Basic Authentication credentials (raw `htpasswd` file content) used to protect the endpoint. See https://doc.traefik.io/traefik/middlewares/http/basicauth/#users for details about it. To `matrix_hookshot_container_labels_metrics_middleware_basic_auth_users`, set the Basic Authentication credentials (raw `htpasswd` file content) used to protect the endpoint. See https://doc.traefik.io/traefik/middlewares/http/basicauth/#users for details about it.
**Note**: alternatively, you can use `matrix_metrics_exposure_enabled` to expose all services on this `/metrics/*` feature, and you can use `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users` to password-protect the metrics of them. See [this section](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) for more information. **Note**: alternatively, you can use `matrix_metrics_exposure_enabled` to expose all services on this `/metrics/*` feature, and you can use `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users` to password-protect the metrics of them. See [this section](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) for more information.
@@ -185,5 +175,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: error, warn, info, debug # Valid values: error, warn, info, debug
matrix_bridge_hookshot_logging_level: debug matrix_hookshot_logging_level: debug
``` ```
@@ -21,23 +21,23 @@ The bridge uses [android-sms-gateway-server](https://github.com/RebekkaMa/androi
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_sms_enabled: true matrix_sms_bridge_enabled: true
# (optional but recommended) a room ID to a default room # (optional but recommended) a room ID to a default room
matrix_bridge_sms_default_room: "" matrix_sms_bridge_default_room: ""
# (optional but recommended) configure your server location # (optional but recommended) configure your server location
matrix_bridge_sms_default_region: DE matrix_sms_bridge_default_region: DE
matrix_bridge_sms_default_timezone: Europe/Berlin matrix_sms_bridge_default_timezone: Europe/Berlin
# Settings to connect to android-sms-gateway-server # Settings to connect to android-sms-gateway-server
matrix_bridge_sms_provider_android_baseurl: https://192.168.24.24:9090 matrix_sms_bridge_provider_android_baseurl: https://192.168.24.24:9090
matrix_bridge_sms_provider_android_username: admin matrix_sms_bridge_provider_android_username: admin
matrix_bridge_sms_provider_android_password: supeSecretPassword matrix_sms_bridge_provider_android_password: supeSecretPassword
# (optional) if your android-sms-gateway-server uses a self signed vertificate, the bridge needs a "truststore". This can be the certificate itself. # (optional) if your android-sms-gateway-server uses a self signed vertificate, the bridge needs a "truststore". This can be the certificate itself.
matrix_bridge_sms_provider_android_truststore_local_path: android-sms-gateway-server.p12 matrix_sms_bridge_provider_android_truststore_local_path: android-sms-gateway-server.p12
matrix_bridge_sms_provider_android_truststore_password: 123 matrix_sms_bridge_provider_android_truststore_password: 123
``` ```
### Extending the configuration ### Extending the configuration
@@ -46,7 +46,7 @@ There are some additional things you may wish to configure about the bridge.
Take a look at: Take a look at:
- `roles/custom/matrix-bridge-sms/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_bridge_sms_configuration_extension_yaml` variable - `roles/custom/matrix-bridge-sms/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_sms_bridge_configuration_extension_yaml` variable
## Installing ## Installing
@@ -27,7 +27,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_bluesky_enabled: true matrix_mautrix_bluesky_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -70,5 +70,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug, trace # Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_bluesky_logging_level: 'debug' matrix_mautrix_bluesky_logging_level: 'debug'
``` ```
@@ -21,12 +21,12 @@ To enable the bridge, add the following configuration to your `inventory/host_va
```yaml ```yaml
# Replace SERVICENAME with one of: twitter, discord, signal, googlechat, etc. # Replace SERVICENAME with one of: twitter, discord, signal, googlechat, etc.
matrix_bridge_mautrix_SERVICENAME_enabled: true matrix_mautrix_SERVICENAME_enabled: true
``` ```
**Note**: for bridging to Meta's Messenger or Instagram, you would need to add `meta` with an underscore symbol (`_`) or hyphen (`-`) based on the context as prefix to each `SERVICENAME`; add `_` to variables (as in `matrix_bridge_mautrix_meta_messenger_configuration_extension_yaml` for example) and `-` to paths of the configuration files (as in `roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2`), respectively. **Note**: for bridging to Meta's Messenger or Instagram, you would need to add `meta` with an underscore symbol (`_`) or hyphen (`-`) based on the context as prefix to each `SERVICENAME`; add `_` to variables (as in `matrix_mautrix_meta_messenger_configuration_extension_yaml` for example) and `-` to paths of the configuration files (as in `roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2`), respectively.
There are some additional things you may wish to configure about the bridge before you continue. Each bridge may have additional requirements besides `_enabled: true`. For example, the mautrix-telegram bridge (our documentation page about it is [here](configuring-playbook-bridge-mautrix-telegram.md)) requires the `matrix_bridge_mautrix_telegram_api_id` and `matrix_bridge_mautrix_telegram_api_hash` variables to be defined. Refer to each bridge's individual documentation page for details about enabling bridges. There are some additional things you may wish to configure about the bridge before you continue. Each bridge may have additional requirements besides `_enabled: true`. For example, the mautrix-telegram bridge (our documentation page about it is [here](configuring-playbook-bridge-mautrix-telegram.md)) requires the `matrix_mautrix_telegram_api_id` and `matrix_mautrix_telegram_api_hash` variables to be defined. Refer to each bridge's individual documentation page for details about enabling bridges.
### Configure bridge permissions (optional) ### Configure bridge permissions (optional)
@@ -43,7 +43,7 @@ If you don't define the `matrix_admin` in your configuration (e.g. `matrix_admin
**Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with: **Alternatively** (more verbose, but allows multiple admins to be configured), you can do the same on a per-bridge basis with:
```yaml ```yaml
matrix_bridge_mautrix_SERVICENAME_configuration_extension_yaml: | matrix_mautrix_SERVICENAME_configuration_extension_yaml: |
bridge: bridge:
permissions: permissions:
'@alice:{{ matrix_domain }}': admin '@alice:{{ matrix_domain }}': admin
@@ -67,8 +67,8 @@ matrix_bridges_encryption_default: true
**Alternatively**, for a specific bridge: **Alternatively**, for a specific bridge:
```yaml ```yaml
matrix_bridge_mautrix_SERVICENAME_bridge_encryption_enabled: true matrix_mautrix_SERVICENAME_bridge_encryption_enabled: true
matrix_bridge_mautrix_SERVICENAME_bridge_encryption_default: true matrix_mautrix_SERVICENAME_bridge_encryption_default: true
``` ```
### Enable relay mode (optional) ### Enable relay mode (optional)
@@ -86,16 +86,16 @@ matrix_bridges_relay_enabled: true
**Alternatively**, for a specific bridge: **Alternatively**, for a specific bridge:
```yaml ```yaml
matrix_bridge_mautrix_SERVICENAME_configuration_extension_yaml: | matrix_mautrix_SERVICENAME_configuration_extension_yaml: |
bridge: bridge:
relay: relay:
enabled: true enabled: true
``` ```
You can only have one `matrix_bridge_mautrix_SERVICENAME_configuration_extension_yaml` definition in `vars.yml` per bridge, so if you need multiple pieces of configuration there, just merge them like this: You can only have one `matrix_mautrix_SERVICENAME_configuration_extension_yaml` definition in `vars.yml` per bridge, so if you need multiple pieces of configuration there, just merge them like this:
```yaml ```yaml
matrix_bridge_mautrix_SERVICENAME_configuration_extension_yaml: | matrix_mautrix_SERVICENAME_configuration_extension_yaml: |
bridge: bridge:
relay: relay:
enabled: true enabled: true
@@ -115,7 +115,7 @@ Use `!prefix set-pl 100` to be able for the bot to modify room settings and invi
By default, only admins are allowed to set themselves as relay users. To allow anyone on your homeserver to set themselves as relay users, add the following configuration to your `vars.yml` file: By default, only admins are allowed to set themselves as relay users. To allow anyone on your homeserver to set themselves as relay users, add the following configuration to your `vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_SERVICENAME_bridge_relay_admin_only: false matrix_mautrix_SERVICENAME_bridge_relay_admin_only: false
``` ```
### Set the bot's username (optional) ### Set the bot's username (optional)
@@ -123,7 +123,7 @@ matrix_bridge_mautrix_SERVICENAME_bridge_relay_admin_only: false
To set the bot's username, add the following configuration to your `vars.yml` file: To set the bot's username, add the following configuration to your `vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_SERVICENAME_appservice_bot_username: "BOTNAME" matrix_mautrix_SERVICENAME_appservice_bot_username: "BOTNAME"
``` ```
### Configure the logging level (optional) ### Configure the logging level (optional)
@@ -131,7 +131,7 @@ matrix_bridge_mautrix_SERVICENAME_appservice_bot_username: "BOTNAME"
To specify the logging level, add the following configuration to your `vars.yml` file: To specify the logging level, add the following configuration to your `vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_SERVICENAME_logging_level: warn matrix_mautrix_SERVICENAME_logging_level: warn
``` ```
Replace `warn` with one of the following to control the verbosity of the logs generated: `trace`, `debug`, `info`, `warn`, `error` or `fatal`. Replace `warn` with one of the following to control the verbosity of the logs generated: `trace`, `debug`, `info`, `warn`, `error` or `fatal`.
@@ -155,7 +155,7 @@ matrix_bridges_exposure_enabled: false
**Alternatively**, to disable it for a specific bridge: **Alternatively**, to disable it for a specific bridge:
```yaml ```yaml
matrix_bridge_mautrix_SERVICENAME_exposure_enabled: false matrix_mautrix_SERVICENAME_exposure_enabled: false
``` ```
If you run additional bridges on the same server which are not managed by this playbook and would like compatible tools to discover them as well, you can advertise their base URLs in the `/.well-known/matrix/mautrix` file: If you run additional bridges on the same server which are not managed by this playbook and would like compatible tools to discover them as well, you can advertise their base URLs in the `/.well-known/matrix/mautrix` file:
@@ -174,7 +174,7 @@ There are some additional things you may wish to configure about the bridge.
Take a look at: Take a look at:
- `roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` for some variables that you can customize via your `vars.yml` file - `roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
- `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_mautrix_SERVICENAME_configuration_extension_yaml` variable - `roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_mautrix_SERVICENAME_configuration_extension_yaml` variable
## Installing ## Installing
@@ -226,7 +226,7 @@ This is the recommended way of setting up Double Puppeting, as it's easier to ac
- Previously there were multiple different automatic double puppeting methods like one with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but they have been superseded by this Appservice Double Puppet method. Double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future as the older methods were completely removed in the megabridge rewrites on [the upstream project](https://docs.mau.fi/bridges/general/double-puppeting.html#automatically). - Previously there were multiple different automatic double puppeting methods like one with the help of the [Shared Secret Auth password provider module](./configuring-playbook-shared-secret-auth.md), but they have been superseded by this Appservice Double Puppet method. Double puppeting with the Shared Secret Auth works at the time of writing, but is deprecated and will stop working in the future as the older methods were completely removed in the megabridge rewrites on [the upstream project](https://docs.mau.fi/bridges/general/double-puppeting.html#automatically).
<!-- TODO: remove this note if the Shared Secret Auth service has stopped working or the bridges have been removed --> <!-- TODO: remove this note if the Shared Secret Auth service has stopped working or the bridges have been removed -->
- Some bridges like [the deprecated Facebook mautrix bridge](configuring-playbook-bridge-mautrix-facebook.md) are compatible with the Shared Secret Auth service only. These bridges automatically perform Double Puppeting if [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service is configured and enabled on the server for this playbook. - Some bridges like [the deprecated Facebook mautrix bridge](configuring-playbook-bridge-mautrix-facebook.md) and [matrix-appservice-kakaotalk](configuring-playbook-bridge-appservice-kakaotalk.md), which is partially based on the Facebook bridge, are compatible with the Shared Secret Auth service only. These bridges automatically perform Double Puppeting if [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service is configured and enabled on the server for this playbook.
#### Method 2: manually, by asking each user to provide a working access token #### Method 2: manually, by asking each user to provide a working access token
@@ -39,7 +39,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_discord_enabled: true matrix_mautrix_discord_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -96,7 +96,7 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug, trace # Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_discord_logging_level: 'debug' matrix_mautrix_discord_logging_level: 'debug'
``` ```
### Command requires room admin rights when user is creator ### Command requires room admin rights when user is creator
@@ -27,7 +27,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_gmessages_enabled: true matrix_mautrix_gmessages_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -68,5 +68,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug, trace # Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_gmessages_logging_level: 'debug' matrix_mautrix_gmessages_logging_level: 'debug'
``` ```
@@ -30,7 +30,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the [Google Chat](https://chat.google.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the [Google Chat](https://chat.google.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_googlechat_enabled: true matrix_mautrix_googlechat_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -70,5 +70,5 @@ As with all other services, you can find the logs in [systemd-journald](https://
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: 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:
```yaml ```yaml
matrix_bridge_mautrix_googlechat_logging_level: DEBUG matrix_mautrix_googlechat_logging_level: DEBUG
``` ```
@@ -1,73 +0,0 @@
<!--
SPDX-FileCopyrightText: 2026 MDAD project contributors
SPDX-FileCopyrightText: 2026 Nikita Chernyi
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Setting up Mautrix Google Voice bridging (optional)
<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>
The playbook can install and configure [mautrix-gvoice](https://github.com/mautrix/gvoice) for you, for bridging to [Google Voice](https://voice.google.com/).
See the project's [documentation](https://docs.mau.fi/bridges/go/gvoice/index.html) to learn what it does and why it might be useful to you.
## Prerequisite (optional)
### Enable Appservice Double Puppet
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) for this playbook.
See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-puppeting-optional) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about setting up Double Puppeting.
## Adjusting the playbook configuration
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml
matrix_bridge_mautrix_gvoice_enabled: true
```
### Extending the configuration
There are some additional things you may wish to configure about the bridge.
<!-- NOTE: relay mode is not supported for this bridge -->
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.
## Installing
After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:
<!-- NOTE: let this conservative command run (instead of install-all) to make it clear that failure of the command means something is clearly broken. -->
```sh
ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,start
```
The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`
`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.
## Usage
To use the bridge, start a chat with `@gvoicebot:example.com` (where `example.com` is your base domain, not the `matrix.` domain).
Google Voice has no phone to pair and no QR code to scan. It logs in with cookies, which you copy from a browser already signed in to [voice.google.com](https://voice.google.com/) and hand to the bot. It is fiddlier than scanning a code and feels more suspicious than it is, but Google leaves no cleaner door open. The bridge's [official Authentication guide](https://docs.mau.fi/bridges/go/gvoice/authentication.html) has the exact cookies to grab and the steps for grabbing them.
Those cookies are a login session, and Google expires them on its own schedule. When they lapse the bridge goes quiet and you log in again. Nothing is broken, that is just how cookie auth ages.
Once you log in, the bridge builds portal rooms for your recent conversations and carries text and media both ways. Don't reach for it to start a brand-new chat or to place a call, though. That ground still belongs to Google Voice, so keep the app around for those.
## Troubleshooting
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-gvoice`.
### Increase logging verbosity
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:
```yaml
# Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_gvoice_logging_level: 'debug'
```
@@ -23,7 +23,7 @@ This documentation page only deals with the bridge's ability to bridge to Instag
If you've been using the [mautrix-instagram](./configuring-playbook-bridge-mautrix-instagram.md) bridge, **you'd better get rid of it first** or the 2 bridges will be in conflict: If you've been using the [mautrix-instagram](./configuring-playbook-bridge-mautrix-instagram.md) bridge, **you'd better get rid of it first** or the 2 bridges will be in conflict:
- both trying to use `@instagrambot:example.com` as their username. This conflict may be resolved by adjusting `matrix_mautrix_instagram_appservice_bot_username` or `matrix_bridge_mautrix_meta_instagram_appservice_username` - both trying to use `@instagrambot:example.com` as their username. This conflict may be resolved by adjusting `matrix_mautrix_instagram_appservice_bot_username` or `matrix_mautrix_meta_instagram_appservice_username`
- both trying to bridge the same DMs - both trying to bridge the same DMs
To do so, send a `clean-rooms` command to the management room with the old bridge bot (`@instagrambot:example.com`). It gives you a list of portals and groups of portals you may purge. Proceed with sending commands like `clean recommended`, etc. To do so, send a `clean-rooms` command to the management room with the old bridge bot (`@instagrambot:example.com`). It gives you a list of portals and groups of portals you may purge. Proceed with sending commands like `clean recommended`, etc.
@@ -41,7 +41,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_meta_instagram_enabled: true matrix_mautrix_meta_instagram_enabled: true
``` ```
Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below. Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below.
@@ -83,5 +83,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# This bridge uses zerolog, so valid levels are: panic, fatal, error, warn, info, debug, trace # This bridge uses zerolog, so valid levels are: panic, fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_meta_instagram_logging_min_level: debug matrix_mautrix_meta_instagram_logging_min_level: debug
``` ```
@@ -41,7 +41,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_meta_messenger_enabled: true matrix_mautrix_meta_messenger_enabled: true
``` ```
Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below. Before proceeding to [re-running the playbook](./installing.md), you may wish to adjust the configuration further. See below.
@@ -56,7 +56,7 @@ The bridge can pull your Messenger messages via 3 different methods:
- (`facebook-tor`) Facebook via `facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion` ([Tor](https://www.torproject.org/)) — does not currently proxy media downloads - (`facebook-tor`) Facebook via `facebookwkhpilnemxj7asaniu7vnjjbiltxjqhye3mhbshg7kx5tfyd.onion` ([Tor](https://www.torproject.org/)) — does not currently proxy media downloads
- (default) (`messenger`) Messenger via `messenger.com` — usable even without a Facebook account - (default) (`messenger`) Messenger via `messenger.com` — usable even without a Facebook account
You may switch the mode via the `matrix_bridge_mautrix_meta_messenger_meta_mode` variable. The playbook defaults to the `messenger` mode, because it's most universal (every Facebook user has a Messenger account, but the opposite is not true). You may switch the mode via the `matrix_mautrix_meta_messenger_meta_mode` variable. The playbook defaults to the `messenger` mode, because it's most universal (every Facebook user has a Messenger account, but the opposite is not true).
Note that switching the mode (especially between `facebook*` and `messenger`) will intentionally make the bridge use another database (`matrix_mautrix_meta_facebook` or `matrix_mautrix_meta_messenger`) to isolate the 2 instances. Switching between Tor and non-Tor may be possible without dataloss, but your mileage may vary. Before switching to a new mode, you may wish to de-configure the old one (send `help` to the bridge bot and unbridge your portals, etc.). Note that switching the mode (especially between `facebook*` and `messenger`) will intentionally make the bridge use another database (`matrix_mautrix_meta_facebook` or `matrix_mautrix_meta_messenger`) to isolate the 2 instances. Switching between Tor and non-Tor may be possible without dataloss, but your mileage may vary. Before switching to a new mode, you may wish to de-configure the old one (send `help` to the bridge bot and unbridge your portals, etc.).
@@ -99,5 +99,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# This bridge uses zerolog, so valid levels are: panic, fatal, error, warn, info, debug, trace # This bridge uses zerolog, so valid levels are: panic, fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_meta_messenger_logging_min_level: debug matrix_mautrix_meta_messenger_logging_min_level: debug
``` ```
@@ -28,7 +28,7 @@ See the project's [documentation](https://docs.mau.fi/bridges/go/signal/index.ht
If you're running with the Postgres database server integrated by the playbook (which is the default), you don't need to do anything special and can easily proceed with installing. If you're running with the Postgres database server integrated by the playbook (which is the default), you don't need to do anything special and can easily proceed with installing.
However, if you're [using an external Postgres server](configuring-playbook-external-postgres.md), you'd need to manually prepare a Postgres database for this bridge and adjust the variables related to that (`matrix_bridge_mautrix_signal_database_*`). However, if you're [using an external Postgres server](configuring-playbook-external-postgres.md), you'd need to manually prepare a Postgres database for this bridge and adjust the variables related to that (`matrix_mautrix_signal_database_*`).
### Enable Appservice Double Puppet ### Enable Appservice Double Puppet
@@ -41,7 +41,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_signal_enabled: true matrix_mautrix_signal_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -83,5 +83,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug, trace # Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_signal_logging_level: 'debug' matrix_mautrix_signal_logging_level: 'debug'
``` ```
@@ -34,7 +34,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_slack_enabled: true matrix_mautrix_slack_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -74,5 +74,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug, trace # Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_slack_logging_level: 'debug' matrix_mautrix_slack_logging_level: 'debug'
``` ```
@@ -36,9 +36,9 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
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`. 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`.
```yaml ```yaml
matrix_bridge_mautrix_telegram_enabled: true matrix_mautrix_telegram_enabled: true
matrix_bridge_mautrix_telegram_api_id: YOUR_TELEGRAM_APP_ID matrix_mautrix_telegram_api_id: YOUR_TELEGRAM_APP_ID
matrix_bridge_mautrix_telegram_api_hash: YOUR_TELEGRAM_API_HASH matrix_mautrix_telegram_api_hash: YOUR_TELEGRAM_API_HASH
``` ```
### Relaying ### Relaying
@@ -86,5 +86,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug, trace # Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_telegram_logging_level: debug matrix_mautrix_telegram_logging_level: debug
``` ```
@@ -28,7 +28,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_twitter_enabled: true matrix_mautrix_twitter_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -69,5 +69,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug, trace # Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_twitter_logging_level: 'debug' matrix_mautrix_twitter_logging_level: 'debug'
``` ```
@@ -34,7 +34,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_whatsapp_enabled: true matrix_mautrix_whatsapp_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -76,5 +76,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug, trace # Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_mautrix_whatsapp_logging_level: 'debug' matrix_mautrix_whatsapp_logging_level: 'debug'
``` ```
@@ -25,26 +25,26 @@ When setting, replace `example.com` with your own.
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mautrix_wsproxy_enabled: true matrix_mautrix_wsproxy_enabled: true
matrix_bridge_mautrix_wsproxy_androidsms_appservice_token: 'secret token from bridge' matrix_mautrix_androidsms_appservice_token: 'secret token from bridge'
matrix_bridge_mautrix_wsproxy_androidsms_homeserver_token: 'secret token from bridge' matrix_mautrix_androidsms_homeserver_token: 'secret token from bridge'
matrix_bridge_mautrix_wsproxy_imessage_appservice_token: 'secret token from bridge' matrix_mautrix_imessage_appservice_token: 'secret token from bridge'
matrix_bridge_mautrix_wsproxy_imessage_homeserver_token: 'secret token from bridge' matrix_mautrix_imessage_homeserver_token: 'secret token from bridge'
matrix_bridge_mautrix_wsproxy_syncproxy_shared_secret: 'secret token from bridge' matrix_mautrix_wsproxy_syncproxy_shared_secret: 'secret token from bridge'
``` ```
Note that the tokens must match what is compiled into the [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android device. Note that the tokens must match what is compiled into the [mautrix-imessage](https://github.com/mautrix/imessage) bridge running on your Mac or Android device.
### Adjusting the wsproxy URL (optional) ### Adjusting the wsproxy URL (optional)
By tweaking the `matrix_bridge_mautrix_wsproxy_hostname` variable, you can easily make the service available at a **different hostname** than the default one. By tweaking the `matrix_mautrix_wsproxy_hostname` variable, you can easily make the service available at a **different hostname** than the default one.
Example additional configuration for your `vars.yml` file: Example additional configuration for your `vars.yml` file:
```yaml ```yaml
# Change the default hostname # Change the default hostname
matrix_bridge_mautrix_wsproxy_hostname: ws.example.com matrix_mautrix_wsproxy_hostname: ws.example.com
``` ```
After changing the domain, **you may need to adjust your DNS** records to point the wsproxy domain to the Matrix server. After changing the domain, **you may need to adjust your DNS** records to point the wsproxy domain to the Matrix server.
@@ -26,42 +26,42 @@ You also need access to a Meshtastic device, connected to the server via one of:
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_meshtastic_relay_enabled: true matrix_meshtastic_relay_enabled: true
# Password for the bot's Matrix account. # Password for the bot's Matrix account.
# On first startup, the bridge uses this to log in and persist credentials # On first startup, the bridge uses this to log in and persist credentials
# (including End-to-End Encryption material) under its data directory. # (including End-to-End Encryption material) under its data directory.
# After that, the password can be removed from this variable. # After that, the password can be removed from this variable.
matrix_bridge_meshtastic_relay_matrix_bot_password: "PASSWORD_FOR_THE_BOT" matrix_meshtastic_relay_matrix_bot_password: "PASSWORD_FOR_THE_BOT"
# How the bridge connects to your Meshtastic device. # How the bridge connects to your Meshtastic device.
# One of: tcp, serial, ble # One of: tcp, serial, ble
matrix_bridge_meshtastic_relay_connection_type: tcp matrix_meshtastic_relay_connection_type: tcp
# For connection_type: tcp # For connection_type: tcp
matrix_bridge_meshtastic_relay_tcp_host: "meshtastic.local" matrix_meshtastic_relay_tcp_host: "meshtastic.local"
# For connection_type: serial # For connection_type: serial
# matrix_bridge_meshtastic_relay_serial_port: "/dev/ttyUSB0" # matrix_meshtastic_relay_serial_port: "/dev/ttyUSB0"
# For connection_type: ble # For connection_type: ble
# matrix_bridge_meshtastic_relay_ble_address: "AA:BB:CC:DD:EE:FF" # matrix_meshtastic_relay_ble_address: "AA:BB:CC:DD:EE:FF"
# Matrix rooms to bridge to Meshtastic channels. # Matrix rooms to bridge to Meshtastic channels.
matrix_bridge_meshtastic_relay_matrix_rooms_list: matrix_meshtastic_relay_matrix_rooms_list:
- id: "#meshtastic:{{ matrix_domain }}" - id: "#meshtastic:{{ matrix_domain }}"
meshtastic_channel: "0" meshtastic_channel: "0"
``` ```
By default, the bot's Matrix ID is `@meshtasticbot:{{ matrix_domain }}`. To change it, adjust `matrix_bridge_meshtastic_relay_matrix_bot_user_id`. By default, the bot's Matrix ID is `@meshtasticbot:{{ matrix_domain }}`. To change it, adjust `matrix_meshtastic_relay_matrix_bot_user_id`.
### Bluetooth (BLE) connections ### Bluetooth (BLE) connections
When `matrix_bridge_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. 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.
### Serial connections ### Serial connections
When `matrix_bridge_meshtastic_relay_connection_type` is `serial`, the host device referenced by `matrix_bridge_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). 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).
### Extending the configuration ### Extending the configuration
@@ -69,7 +69,7 @@ There are some additional things you may wish to configure about the bridge.
Take a look at: Take a look at:
- `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_bridge_meshtastic_relay_*` variables, or make finer-grained adjustments via `matrix_bridge_meshtastic_relay_configuration_extension_yaml`. - `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`.
## Installing ## Installing
@@ -86,7 +86,7 @@ The shortcut commands with the [`just` program](just.md) are also available: `ju
## Usage ## Usage
Invite the bot to the Matrix rooms listed in `matrix_bridge_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. 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.
See the [project's wiki](https://github.com/jeremiah-k/meshtastic-matrix-relay/wiki) for details about commands, plugins and advanced usage. See the [project's wiki](https://github.com/jeremiah-k/meshtastic-matrix-relay/wiki) for details about commands, plugins and advanced usage.
@@ -18,7 +18,7 @@ See the project's [documentation](https://gitlab.com/xangelix-pub/matrix/mx-pupp
To enable the [GroupMe](https://groupme.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the [GroupMe](https://groupme.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mx_puppet_groupme_enabled: true matrix_mx_puppet_groupme_enabled: true
``` ```
## Installing ## Installing
@@ -20,7 +20,7 @@ See the project's [documentation](https://codeberg.org/icewind/mx-puppet-steam/b
To enable the [Steam](https://steampowered.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the [Steam](https://steampowered.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_mx_puppet_steam_enabled: true matrix_mx_puppet_steam_enabled: true
``` ```
## Installing ## Installing
@@ -24,7 +24,7 @@ Open the following ports on your server to be able to receive incoming emails:
If you don't open these ports, you will still be able to send emails, but not receive any. If you don't open these ports, you will still be able to send emails, but not receive any.
These port numbers are configurable via the `matrix_bridge_postmoogle_smtp_host_bind_port` and `matrix_bridge_postmoogle_submission_host_bind_port` variables, but other email servers will try to deliver on these default (standard) ports, so changing them is of little use. These port numbers are configurable via the `matrix_postmoogle_smtp_host_bind_port` and `matrix_postmoogle_submission_host_bind_port` variables, but other email servers will try to deliver on these default (standard) ports, so changing them is of little use.
## Adjusting DNS records ## Adjusting DNS records
@@ -44,17 +44,17 @@ To make Postmoogle enable its email sending features, you need to configure MX a
Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_postmoogle_enabled: true matrix_postmoogle_enabled: true
# Uncomment and adjust this part if you'd like to use a username different than the default # Uncomment and adjust this part if you'd like to use a username different than the default
# matrix_bridge_postmoogle_login: postmoogle # matrix_postmoogle_login: postmoogle
# Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`. # Generate a strong password for the bot. You can create one with a command like `pwgen -s 64 1`.
matrix_bridge_postmoogle_password: PASSWORD_FOR_THE_BOT matrix_postmoogle_password: PASSWORD_FOR_THE_BOT
# Uncomment to add one or more admins to this bridge: # Uncomment to add one or more admins to this bridge:
# #
# matrix_bridge_postmoogle_admins: # matrix_postmoogle_admins:
# - '@yourAdminAccount:{{ matrix_domain }}' # - '@yourAdminAccount:{{ matrix_domain }}'
# #
# … unless you've made yourself an admin of all bots/bridges like this: # … unless you've made yourself an admin of all bots/bridges like this:
@@ -87,7 +87,7 @@ ansible-playbook -i inventory/hosts setup.yml --tags=setup-all,ensure-matrix-use
`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. `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.
- If you change the bridge's bot password (`matrix_bridge_postmoogle_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_bridge_postmoogle_password` to let the bot know its new password. - If you change the bridge's bot password (`matrix_postmoogle_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_postmoogle_password` to let the bot know its new password.
## Usage ## Usage
@@ -108,5 +108,5 @@ As with all other services, you can find the logs in [systemd-journald](https://
The default logging level for this component is `INFO`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook: The default logging level for this component is `INFO`. If you want to increase the verbosity, add the following configuration to your `vars.yml` file and re-run the playbook:
```yaml ```yaml
matrix_bridge_postmoogle_loglevel: 'DEBUG' matrix_postmoogle_loglevel: 'DEBUG'
``` ```
+4 -9
View File
@@ -40,7 +40,7 @@ See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_rustpush_enabled: true matrix_rustpush_bridge_enabled: true
``` ```
### Disable Backfill (optional) ### Disable Backfill (optional)
@@ -48,7 +48,7 @@ matrix_bridge_rustpush_enabled: true
Backfill can be disabled globally if desired via config. By default, the bridge will backfill from iCloud (CloudKit) and APNS if available. Backfill from `chat.db` is only possible when the bridge is running on MacOS. Backfill can be disabled globally if desired via config. By default, the bridge will backfill from iCloud (CloudKit) and APNS if available. Backfill from `chat.db` is only possible when the bridge is running on MacOS.
```yaml ```yaml
matrix_bridge_rustpush_backfill_enabled: false matrix_rustpush_bridge_backfill_enabled: false
``` ```
### Extending the Configuration ### Extending the Configuration
@@ -88,13 +88,8 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug, trace # Valid values: fatal, error, warn, info, debug, trace
matrix_bridge_rustpush_logging_level: 'debug' matrix_rustpush_bridge_logging_level: 'debug'
# Enable debug logging for RustPush # Enable debug logging for RustPush
matrix_bridge_rustpush_rust_log: "warn,rustpushgo=info,openabsinthe=debug" matrix_rustpush_bridge_rust_log: "warn,rustpushgo=info,openabsinthe=debug"
``` ```
## Notable Configuration Options
- `matrix_bridge_rustpush_statuskit_notifications` will display StatusKit information for conversation participants. In some clients, this update will cause the DM to be pushed to the top of the conversation list continuously, so this option is disabled by default.
- `matrix_bridge_rustpush_statuskit_notification_style` can be set to either `topic` or `notice`
- `topic` sets the status as a room topic. In supported clients (like Cinny and Sable), this will display `🔕 Focus` as a second line when the person has focus mode enabled.
- `notice` sends an `m.notice` event to the room which will display text in the room but should not generate a notification
+1 -4
View File
@@ -15,7 +15,7 @@ See the project's [documentation](https://github.com/jasonlaguidice/matrix-steam
To enable the [Steam](https://steampowered.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the [Steam](https://steampowered.com/) bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_steam_enabled: true matrix_steam_bridge_enabled: true
``` ```
## Installing ## Installing
@@ -46,6 +46,3 @@ Once logged in, send `search [name]` to search through recognized Steam friends.
Chat rooms will automatically be opened as new messages are received. Chat rooms will automatically be opened as new messages are received.
Send `help` to the bot to see the available commands. Send `help` to the bot to see the available commands.
## Notable Configuration Options
- `matrix_bridge_steam_network_presence_topic_enabled` and `matrix_bridge_steam_network_presence_topic_rich_presence_enabled` mirror Steam's [Enhanced Rich Presence](https://partner.steamgames.com/doc/features/enhancedrichpresence) feature in Matrix. This will display the user's current game and rich presence if supported by the game. This sets the DM room's `m.topic` field to achieve this. Some games (like Deadlock) update the rich presence every minute with a match timer. In some clients, the topic update will cause the DM to be pushed to the top of the conversation list continuously, so this option is disabled by default.
+3 -3
View File
@@ -19,7 +19,7 @@ See the project's [documentation](https://github.com/duo/matrix-wechat/blob/mast
To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file: To enable the bridge, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:
```yaml ```yaml
matrix_bridge_wechat_enabled: true matrix_wechat_enabled: true
``` ```
### Extending the configuration ### Extending the configuration
@@ -29,7 +29,7 @@ There are some additional things you may wish to configure about the bridge.
Take a look at: Take a look at:
- `roles/custom/matrix-bridge-wechat/defaults/main.yml` for some variables that you can customize via your `vars.yml` file - `roles/custom/matrix-bridge-wechat/defaults/main.yml` for some variables that you can customize via your `vars.yml` file
- `roles/custom/matrix-bridge-wechat/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_wechat_configuration_extension_yaml` variable - `roles/custom/matrix-bridge-wechat/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_wechat_configuration_extension_yaml` variable
## Installing ## Installing
@@ -62,5 +62,5 @@ The default logging level for this component is `warn`. If you want to increase
```yaml ```yaml
# Valid values: fatal, error, warn, info, debug # Valid values: fatal, error, warn, info, debug
matrix_bridge_wechat_log_level: 'debug' matrix_wechat_log_level: 'debug'
``` ```
-2
View File
@@ -71,6 +71,4 @@ matrix_synapse_federation_port_enabled: false
matrix_synapse_tls_federation_listener_enabled: false matrix_synapse_tls_federation_listener_enabled: false
``` ```
**Note**: `matrix_synapse_federation_port_enabled: false` only makes sense in this specific setup, where federation traffic is served through the client port (because of the `federation` entry in `matrix_synapse_http_listener_resource_names`). If federation still flows through the dedicated federation port on your setup (e.g. another reverse proxy of yours forwarding a custom public port to this playbook's federation port), leave `matrix_synapse_federation_port_enabled` at its default (enabled). Disabling it removes the federation route entirely and breaks such setups.
**Use this at you own risk as all the possible side-effects of doing this are not fully known. However, it has been tested and works fine and passes all the tests on <https://federationtester.matrix.org/> without issues.** **Use this at you own risk as all the possible side-effects of doing this are not fully known. However, it has been tested and works fine and passes all the tests on <https://federationtester.matrix.org/> without issues.**
+2 -4
View File
@@ -146,8 +146,6 @@ Bridges can be used to connect your Matrix installation with third-party communi
- [Setting up Mautrix Google Messages bridging](configuring-playbook-bridge-mautrix-gmessages.md) - [Setting up Mautrix Google Messages bridging](configuring-playbook-bridge-mautrix-gmessages.md)
- [Setting up Mautrix Google Voice bridging](configuring-playbook-bridge-mautrix-gvoice.md)
- [Setting up Mautrix Whatsapp bridging](configuring-playbook-bridge-mautrix-whatsapp.md) - [Setting up Mautrix Whatsapp bridging](configuring-playbook-bridge-mautrix-whatsapp.md)
- [Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md) - [Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)
@@ -168,6 +166,8 @@ Bridges can be used to connect your Matrix installation with third-party communi
- [Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md) - [Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md)
- [Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md)
- [Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md) - [Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md)
- [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). - [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).
@@ -263,8 +263,6 @@ Various services that don't fit any other categories.
- [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) - [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)
- [Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md) (removed; the upstream repository has become unreachable and the component could only be installed by self-building it)
- [Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md) (removed; this component has been discontinued) - [Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md) (removed; this component has been discontinued)
- [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)) - [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))
+1 -20
View File
@@ -112,9 +112,7 @@ This option is less fragile and generally better.
On the base domain's server (e.g. `example.com`), you can set up reverse-proxying (or simply a 302 redirect), so that any access for the `/.well-known/matrix` location prefix is forwarded to the Matrix domain's server (e.g. `matrix.example.com`). On the base domain's server (e.g. `example.com`), you can set up reverse-proxying (or simply a 302 redirect), so that any access for the `/.well-known/matrix` location prefix is forwarded to the Matrix domain's server (e.g. `matrix.example.com`).
With reverse-proxying, you **don't need** to add special HTTP headers for [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) reasons (like `Access-Control-Allow-Origin`), because your Matrix server (where requests ultimately go) will be configured by this playbook correctly. With this method, you **don't need** to add special HTTP headers for [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) reasons (like `Access-Control-Allow-Origin`), because your Matrix server (where requests ultimately go) will be configured by this playbook correctly.
If you use a 302 redirect instead, be aware that browsers apply CORS checks to every response in the redirect chain, so the redirect response itself must also carry an `Access-Control-Allow-Origin: *` header. Otherwise, web-based Matrix clients (like Element Web) may fail to work even though the final destination sets the header correctly.
**For nginx**, it would be something like this: **For nginx**, it would be something like this:
@@ -157,23 +155,6 @@ example.com {
} }
``` ```
**Note**: Caddy does not process directives in the order they appear in the Caddyfile, but according to its own [directive order](https://caddyserver.com/docs/caddyfile/directives#directive-order). Notably, `redir` is evaluated before `reverse_proxy`, so a `redir` elsewhere in the same site block (a common way to send the base domain to `www.example.com` or to another site) takes precedence and breaks the well-known reverse-proxying. In such cases, wrap the directives in [`handle`](https://caddyserver.com/docs/caddyfile/directives/handle) blocks to enforce the intended priority:
```caddy
example.com {
handle /.well-known/matrix/* {
reverse_proxy https://matrix.example.com {
header_up Host {upstream_hostport}
}
}
handle {
# Everything else, e.g. a redirect to some other site
redir https://www.example.com{uri}
}
}
```
**For HAProxy**, it would be something like this: **For HAProxy**, it would be something like this:
```haproxy ```haproxy
+1 -1
View File
@@ -91,7 +91,6 @@ Bridges can be used to connect your Matrix installation with third-party communi
| [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) | [mautrix/slack](https://mau.dev/mautrix/slack/container_registry) | ❌ | Bridge to [Slack](https://slack.com/) | | [mautrix-slack](configuring-playbook-bridge-mautrix-slack.md) | [mautrix/slack](https://mau.dev/mautrix/slack/container_registry) | ❌ | Bridge to [Slack](https://slack.com/) |
| [mautrix-telegram](configuring-playbook-bridge-mautrix-telegram.md) | [mautrix/telegram](https://mau.dev/mautrix/telegram/container_registry) | ❌ | Bridge to [Telegram](https://telegram.org/) | | [mautrix-telegram](configuring-playbook-bridge-mautrix-telegram.md) | [mautrix/telegram](https://mau.dev/mautrix/telegram/container_registry) | ❌ | Bridge to [Telegram](https://telegram.org/) |
| [mautrix-gmessages](configuring-playbook-bridge-mautrix-gmessages.md) | [mautrix/gmessages](https://mau.dev/mautrix/gmessages/container_registry) | ❌ | Bridge to [Google Messages](https://messages.google.com/) | | [mautrix-gmessages](configuring-playbook-bridge-mautrix-gmessages.md) | [mautrix/gmessages](https://mau.dev/mautrix/gmessages/container_registry) | ❌ | Bridge to [Google Messages](https://messages.google.com/) |
| [mautrix-gvoice](configuring-playbook-bridge-mautrix-gvoice.md) | [mautrix/gvoice](https://mau.dev/mautrix/gvoice/container_registry) | ❌ | Bridge to [Google Voice](https://voice.google.com/) |
| [mautrix-whatsapp](configuring-playbook-bridge-mautrix-whatsapp.md) | [mautrix/whatsapp](https://mau.dev/mautrix/whatsapp/container_registry) | ❌ | Bridge to [WhatsApp](https://www.whatsapp.com/) | | [mautrix-whatsapp](configuring-playbook-bridge-mautrix-whatsapp.md) | [mautrix/whatsapp](https://mau.dev/mautrix/whatsapp/container_registry) | ❌ | Bridge to [WhatsApp](https://www.whatsapp.com/) |
| [mautrix-wsproxy](configuring-playbook-bridge-mautrix-wsproxy.md) | [mautrix/wsproxy](https://mau.dev/mautrix/wsproxy/container_registry) | ❌ | Bridge to Android SMS or Apple iMessage | | [mautrix-wsproxy](configuring-playbook-bridge-mautrix-wsproxy.md) | [mautrix/wsproxy](https://mau.dev/mautrix/wsproxy/container_registry) | ❌ | Bridge to Android SMS or Apple iMessage |
| [mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md) | [mautrix/twitter](https://mau.dev/mautrix/twitter/container_registry) | ❌ | Bridge to [Twitter](https://twitter.com/) | | [mautrix-twitter](configuring-playbook-bridge-mautrix-twitter.md) | [mautrix/twitter](https://mau.dev/mautrix/twitter/container_registry) | ❌ | Bridge to [Twitter](https://twitter.com/) |
@@ -100,6 +99,7 @@ Bridges can be used to connect your Matrix installation with third-party communi
| [mautrix-signal](configuring-playbook-bridge-mautrix-signal.md) | [mautrix/signal](https://mau.dev/mautrix/signal/container_registry) | ❌ | Bridge to [Signal](https://www.signal.org/) | | [mautrix-signal](configuring-playbook-bridge-mautrix-signal.md) | [mautrix/signal](https://mau.dev/mautrix/signal/container_registry) | ❌ | Bridge to [Signal](https://www.signal.org/) |
| [beeper-linkedin](configuring-playbook-bridge-beeper-linkedin.md) | [beeper/linkedin](https://ghcr.io/beeper/linkedin) | ❌ | Bridge to [LinkedIn](https://www.linkedin.com/) | | [beeper-linkedin](configuring-playbook-bridge-beeper-linkedin.md) | [beeper/linkedin](https://ghcr.io/beeper/linkedin) | ❌ | Bridge to [LinkedIn](https://www.linkedin.com/) |
| [matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md) | [matrixdotorg/matrix-appservice-irc](https://hub.docker.com/r/matrixdotorg/matrix-appservice-irc) | ❌ | Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) | | [matrix-appservice-irc](configuring-playbook-bridge-appservice-irc.md) | [matrixdotorg/matrix-appservice-irc](https://hub.docker.com/r/matrixdotorg/matrix-appservice-irc) | ❌ | Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat) |
| [matrix-appservice-kakaotalk](configuring-playbook-bridge-appservice-kakaotalk.md) | Self-building | ❌ | Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG) |
| [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md) | [matrix-org/matrix-appservice-discord](https://ghcr.io/matrix-org/matrix-appservice-discord) | ❌ | Bridge to [Discord](https://discordapp.com/) | | [matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md) | [matrix-org/matrix-appservice-discord](https://ghcr.io/matrix-org/matrix-appservice-discord) | ❌ | Bridge to [Discord](https://discordapp.com/) |
| [matrix-hookshot](configuring-playbook-bridge-hookshot.md) | [halfshot/matrix-hookshot](https://hub.docker.com/r/halfshot/matrix-hookshot) | ❌ | Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular | | [matrix-hookshot](configuring-playbook-bridge-hookshot.md) | [halfshot/matrix-hookshot](https://hub.docker.com/r/halfshot/matrix-hookshot) | ❌ | Bridge for generic webhooks and multiple project management services, such as GitHub, GitLab, Figma, and Jira in particular |
| [matrix-sms-bridge](configuring-playbook-bridge-matrix-bridge-sms.md) | [folivonet/matrix-sms-bridge](https://hub.docker.com/repository/docker/folivonet/matrix-sms-bridge) | ❌ | Bridge to SMS | | [matrix-sms-bridge](configuring-playbook-bridge-matrix-bridge-sms.md) | [folivonet/matrix-sms-bridge](https://hub.docker.com/repository/docker/folivonet/matrix-sms-bridge) | ❌ | Bridge to SMS |
+4 -4
View File
@@ -49,8 +49,8 @@ This is because the Matrix specification expects the federation endpoint to be s
```yaml ```yaml
# To let Traefik know which domains' certificates to serve # To let Traefik know which domains' certificates to serve
matrix_synapse_container_labels_additional_labels: | matrix_synapse_container_labels_additional_labels: |
traefik.http.routers.matrix-synapse-public-federation-api.tls.domains.main="example.com" traefik.http.routers.matrix-synapse-federation-api.tls.domains.main="example.com"
traefik.http.routers.matrix-synapse-public-federation-api.tls.domains.sans="*.example.com" traefik.http.routers.matrix-synapse-federation-api.tls.domains.sans="*.example.com"
``` ```
### Configure the DNS-01 challenge for let's encrypt ### Configure the DNS-01 challenge for let's encrypt
@@ -137,8 +137,8 @@ matrix_synapse_container_labels_public_federation_api_traefik_rule: PathPrefix(`
# To let Traefik know which domains' certificates to serve # To let Traefik know which domains' certificates to serve
matrix_synapse_container_labels_additional_labels: | matrix_synapse_container_labels_additional_labels: |
traefik.http.routers.matrix-synapse-public-federation-api.tls.domains.main="example.com" traefik.http.routers.matrix-synapse-federation-api.tls.domains.main="example.com"
traefik.http.routers.matrix-synapse-public-federation-api.tls.domains.sans="*.example.com" traefik.http.routers.matrix-synapse-federation-api.tls.domains.sans="*.example.com"
# Add a new ACME configuration without having to disable the default one, since it would have a wide range of side effects # Add a new ACME configuration without having to disable the default one, since it would have a wide range of side effects
traefik_configuration_extension_yaml: | traefik_configuration_extension_yaml: |
-5
View File
@@ -25,11 +25,6 @@ The migration might be a good moment, to "reset" a not properly working bridge.
Before doing the actual import, **you need to upload your Postgres dump file to the server** (any path is okay). Before doing the actual import, **you need to upload your Postgres dump file to the server** (any path is okay).
> [!WARNING]
> Do not import into a database that already contains tables (e.g. one that a service has already initialized and used). As the [official Synapse backup guide](https://element-hq.github.io/synapse/latest/usage/administration/backups.html) puts it: at best this will error, at worst it will lead to subtle database inconsistencies. Import into an empty (freshly created) database instead.
**Note for Synapse users restoring an older backup**: if the server kept running (and users kept chatting) after the backup you are restoring was made, truncate the `e2e_one_time_keys_json` table after importing and before starting Synapse. Restoring an older backup can otherwise cause already-used one-time keys to be re-issued, leading to message decryption errors for your users. You can do this by [getting a database terminal](maintenance-postgres.md#getting-a-database-terminal), connecting to the Synapse database (`\c synapse`) and running `TRUNCATE e2e_one_time_keys_json;`. Clients will generate and upload fresh one-time keys automatically.
## Importing ## Importing
To import, run this command (make sure to replace `SERVER_PATH_TO_POSTGRES_DUMP_FILE` with a file path on your server): To import, run this command (make sure to replace `SERVER_PATH_TO_POSTGRES_DUMP_FILE` with a file path on your server):
-2
View File
@@ -13,8 +13,6 @@ You can manually import your `media_store` files from a previous installation of
Before doing the actual data restore, **you need to upload your media store directory to the server** (any path is okay). Before doing the actual data restore, **you need to upload your media store directory to the server** (any path is okay).
You also need the [rsync](https://rsync.samba.org/) utility installed **on the server**, as the import performs a server-side `rsync` synchronization. The playbook does not install it for you. On most distributions, it is available as a package called `rsync`.
If you are [storing Matrix media files on Amazon S3](configuring-playbook-s3.md) (optional), restoring with this tool is not possible right now. If you are [storing Matrix media files on Amazon S3](configuring-playbook-s3.md) (optional), restoring with this tool is not possible right now.
As an alternative, you can perform a manual restore using the [AWS CLI tool](https://aws.amazon.com/cli/) (e.g. `aws s3 sync /path/to/server/media_store/. s3://name-of-bucket/`) As an alternative, you can perform a manual restore using the [AWS CLI tool](https://aws.amazon.com/cli/) (e.g. `aws s3 sync /path/to/server/media_store/. s3://name-of-bucket/`)
-2
View File
@@ -76,8 +76,6 @@ If you are using an [external Postgres server](configuring-playbook-external-pos
Restoring a backup made this way can be done by [importing it](importing-postgres.md). Restoring a backup made this way can be done by [importing it](importing-postgres.md).
**Note for Synapse users**: the [official Synapse backup guide](https://element-hq.github.io/synapse/latest/usage/administration/backups.html) recommends that the `e2e_one_time_keys_json` table either not be backed up, or be truncated after restoring (before Synapse is started). The full-server dump command above does include it, so if you ever restore a backup that is older than the server's current state, remember to truncate that table as described in [the importing guide](importing-postgres.md).
## Upgrading PostgreSQL ## Upgrading PostgreSQL
Unless you are using an [external Postgres server](configuring-playbook-external-postgres.md), this playbook initially installs Postgres for you. Unless you are using an [external Postgres server](configuring-playbook-external-postgres.md), this playbook initially installs Postgres for you.
-3
View File
@@ -105,9 +105,6 @@ Cache autotuning is **enabled by default** and controlled via the following vari
You can **learn more about cache-autotuning and the global cache factor settings** in the [Synapse's documentation on caches and associated values](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values). You can **learn more about cache-autotuning and the global cache factor settings** in the [Synapse's documentation on caches and associated values](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values).
> [!NOTE]
> These limits apply **per Synapse process**. If you have [workers](configuring-playbook-synapse.md#load-balancing-with-workers) enabled, the main process and every worker each apply the configured limits independently, so the theoretical aggregate cache memory usage gets multiplied by the number of processes. When running many workers on a memory-constrained server, consider setting these variables to lower, explicitly chosen values.
To **disable cache auto-tuning**, unset all values: To **disable cache auto-tuning**, unset all values:
```yaml ```yaml
-1
View File
@@ -41,7 +41,6 @@ Possibly outdated list of roles where self-building the Docker image is currentl
- `matrix-bridge-mautrix-telegram` - `matrix-bridge-mautrix-telegram`
- `matrix-bridge-mautrix-signal` - `matrix-bridge-mautrix-signal`
- `matrix-bridge-mautrix-gmessages` - `matrix-bridge-mautrix-gmessages`
- `matrix-bridge-mautrix-gvoice`
- `matrix-bridge-mautrix-whatsapp` - `matrix-bridge-mautrix-whatsapp`
- `matrix-bridge-mx-puppet-steam` - `matrix-bridge-mx-puppet-steam`
- `matrix-bot-mjolnir` - `matrix-bot-mjolnir`
-105
View File
@@ -1,105 +0,0 @@
<!--
SPDX-FileCopyrightText: 2026 Slavi Pantaleev
SPDX-FileCopyrightText: 2026 Suguru Hirahara
SPDX-License-Identifier: AGPL-3.0-or-later
-->
# Style guide for playbook developers
This page describes the conventions used when developing this playbook and writing its documentation. Follow it when adding a new component (a role and its documentation page) or editing existing ones, so that everything stays consistent.
The guide is meant for anyone preparing a contribution, humans and AI agents alike. If you find existing files that deviate from it, feel free to send a pull request bringing them in line.
## Language
- Write in English, using American spelling ("customize", not "customise").
- Proper nouns are capitalized: Matrix, Element, Synapse, Ansible, Docker, Traefik, Postgres, Grafana, etc. Some projects deliberately brand themselves in lowercase (e.g. `baibot`, `rageshake`, `coturn`, `mautrix-telegram`) and keep their lowercase name even at the start of a sentence. When in doubt, follow the upstream project's own spelling.
## Markdown style
- Do not hard-wrap prose. Each paragraph is a single line in the source file, no matter how long. This keeps the source and the rendered result consistent and makes diffs and translations easier to work with.
- Number ordered lists sequentially (`1.`, `2.`, `3.`), instead of relying on the Markdown renderer to fix a repeated (`1.`, `1.`, `1.`) or wrong (`1.`, `2.`, `4.`) sequence.
- Use `-` for unordered lists.
- Wrap variable names, file paths, commands, domains, and service names in backticks (`` ` ``).
- Use fenced code blocks with a language hint (```` ```yaml ````, ```` ```sh ````) for configuration and command examples.
- Use relative links when linking between documentation pages (e.g. `[Configuring DNS](configuring-dns.md)`).
- Link to the upstream project's official documentation instead of duplicating its content (installation steps, distro-specific commands, etc.). Copied instructions go stale; links age much better.
## Example values
Use these placeholder values in documentation and code comments, so examples look the same everywhere:
| What | Value |
|------|-------|
| base domain | `example.com` |
| Matrix server domain | `matrix.example.com` |
| another (federated) server | `example.org` |
| user IDs | `@alice:example.com`, `@bob:example.com` |
| room ID | `!qporfwt:example.com` |
| room alias | `#room:example.com` |
The user and room ID values follow the examples in the [Matrix specification](https://spec.matrix.org/latest/#room-structure). Never use real domains, usernames, or tokens in examples.
Component-specific identifiers (e.g. a bridge bot like `@telegrambot:example.com`) are fine where they make an example clearer.
## Documentation page structure
Each component gets its own documentation page: `docs/configuring-playbook-<component>.md` (bridges use a `configuring-playbook-bridge-<name>.md` file name, bots use `configuring-playbook-bot-<name>.md`).
A typical page looks like this, with sections appearing in this order (sections that do not apply can be omitted):
```md
# Setting up ComponentName (optional)
The playbook can install and configure [ComponentName](https://github.com/example/component) for you.
See the project's [documentation](https://github.com/example/component/blob/main/README.md) to learn what it does and why it might be useful to you.
## Prerequisites (optional)
## Adjusting DNS records
## Adjusting the playbook configuration
### Extending the configuration
## Installing
## Usage
## Troubleshooting
```
Notes:
- Headings use sentence case ("Adjusting the playbook configuration", not "Adjusting The Playbook Configuration").
- The "Adjusting the playbook configuration" section tells people to add configuration to their `inventory/host_vars/matrix.example.com/vars.yml` file and shows a minimal `yaml` example.
- The "Installing" section references [playbook tags](playbook-tags.md) and shows the `just` command or `ansible-playbook` invocation to run.
- Look at an existing page for a similar component (another bridge, bot, or service) and copy its structure. The mautrix bridge pages share common sections via [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md), so bridge pages link there instead of repeating the shared content.
## Adding a new component
First, consider where the component belongs:
- Matrix-specific components are developed as roles in this repository, under `roles/custom/`.
- Components that are not Matrix-specific should live as external roles, preferably in the [MASH organization](https://github.com/mother-of-all-self-hosting/), and get wired into the playbook via `requirements.yml`.
- For components that are not Matrix-specific, also consider whether they belong in this Matrix playbook at all, or rather in [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Certain components (like Grafana or backup tools) are suitable for both playbooks. If something is too far away from general usefulness on a Matrix server, we prefer not to include it here, and to only have it in mash-playbook.
Besides the role itself and its documentation page, a new component touches a few other places. Make sure a pull request adding one covers all of them:
1. The role, in `roles/custom/matrix-<component>/` (or an external role wired via `requirements.yml`, as described above).
2. Role registration in `setup.yml`.
3. Wiring in `group_vars/matrix_servers`. Wire the component to the rest of the playbook there (referencing variables of other roles), but keep values that the role can construct by itself in the role's own `defaults/main.yml`.
4. The documentation page, `docs/configuring-playbook-<component>.md`, linked from the table of contents in `docs/README.md`.
5. An entry in the supported services list in `README.md`.
6. A row in `docs/container-images.md`, if the component runs a container.
7. A `CHANGELOG.md` entry announcing the new component.
8. License headers: every new file carries `SPDX-FileCopyrightText` and `SPDX-License-Identifier` comments, as this project follows the [REUSE](https://reuse.software/) specification.
Variable naming conventions:
- The variable prefix matches the role directory name: the `matrix-bridge-mautrix-telegram` role uses `matrix_bridge_mautrix_telegram_*` variables, the `matrix-bot-mjolnir` role uses `matrix_bot_mjolnir_*` variables, and so on.
- List-type variables that the playbook may extend automatically follow the `_auto` + `_custom` split: the main variable combines an `_auto` component (managed by the playbook via `group_vars`) and a `_custom` component (reserved for users). Where it makes sense, there is also a `_default` component, containing sensible defaults provided by the role itself. See `matrix_bridge_hookshot_container_additional_networks` and `matrix_bridge_hookshot_systemd_required_services_list` for examples.
- When a variable is renamed or removed, deprecate it so that people with stale configuration get told about it instead of it being silently ignored. Each role deprecates its own variables, in its `validate_config.yml` tasks. The `matrix_playbook_migration` role handles the cases a role cannot: variables of completely eliminated roles (which no longer have their own `validate_config.yml`), and validation that needs to run very early for some reason.
- For breaking changes that require the user's attention (beyond a renamed variable that validation already catches), bump `matrix_playbook_migration_expected_version` and add a matching entry to the `matrix_playbook_migration_breaking_changes` list (a summary and a `CHANGELOG.md` link), in `roles/custom/matrix_playbook_migration/defaults/main.yml`. Users declare `matrix_playbook_migration_validated_version` in their configuration, and the playbook walks them through all breaking changes between their validated version and the expected one. Also update the recommended value in `examples/vars.yml`; a pre-commit check enforces that it matches the expected version.
+1 -1
View File
@@ -22,7 +22,7 @@
}; };
agru = pkgs.buildGo125Module { agru = pkgs.buildGo125Module {
pname = "agru"; pname = "agru";
version = "0.2.1"; version = "0.1.19";
src = agru-src; src = agru-src;
vendorHash = null; vendorHash = null;
}; };
+924 -965
View File
File diff suppressed because it is too large Load Diff
-109
View File
@@ -1,109 +0,0 @@
# 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-07-18 04:11+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"
#: ../../../AGENTS.md:7
msgid "Guidance for AI agents"
msgstr ""
#: ../../../AGENTS.md:9
msgid "This file gives AI coding agents the minimum context for working on this repository. Human contributors may find it a useful summary too."
msgstr ""
#: ../../../AGENTS.md:11
msgid "What this is"
msgstr ""
#: ../../../AGENTS.md:13
msgid "An Ansible playbook that installs and manages a Matrix homeserver and dozens of related services, each running as a Docker container wrapped in a systemd service."
msgstr ""
#: ../../../AGENTS.md:15
msgid "Layout"
msgstr ""
#: ../../../AGENTS.md:17
msgid "`setup.yml`: the main playbook, listing all roles."
msgstr ""
#: ../../../AGENTS.md:18
msgid "`roles/custom/`: roles maintained in this repository."
msgstr ""
#: ../../../AGENTS.md:19
msgid "`roles/galaxy/`: external roles, downloaded according to `requirements.yml` via [agru](https://github.com/etkecc/agru) (preferred) or `ansible-galaxy`. Run `just roles` to install them (or `just update` to also pull the playbook itself). Editing these roles locally is fine while preparing or testing a fix, but the changes get wiped on the next roles update, so they must be synced back to the role's upstream repository, followed by a version pin update in `requirements.yml`."
msgstr ""
#: ../../../AGENTS.md:20
msgid "`group_vars/matrix_servers`: wires roles together (feeding one role's variables into another). Values a role can construct by itself belong in the role's `defaults/main.yml`, not here."
msgstr ""
#: ../../../AGENTS.md:21
msgid "`docs/`: user-facing documentation, one page per component."
msgstr ""
#: ../../../AGENTS.md:22
msgid "`i18n/`: translation infrastructure. Do not edit locale files by hand; they are managed by automation."
msgstr ""
#: ../../../AGENTS.md:23
msgid "`CHANGELOG.md`: user-facing announcements, newest first."
msgstr ""
#: ../../../AGENTS.md:25
msgid "Conventions"
msgstr ""
#: ../../../AGENTS.md:27
msgid "Follow the [style guide for playbook developers](docs/style-guide.md). In particular:"
msgstr ""
#: ../../../AGENTS.md:29
msgid "Variable prefixes match the role directory name."
msgstr ""
#: ../../../AGENTS.md:30
msgid "Playbook-extensible list variables use the `_auto` + `_custom` split; `_custom` is reserved for users."
msgstr ""
#: ../../../AGENTS.md:31
msgid "Renamed or removed variables get a validation entry, so stale user configuration produces an error instead of being silently ignored. Each role deprecates its own variables in its `validate_config.yml`; the `matrix_playbook_migration` role covers eliminated roles and very-early validation, and also gates breaking changes via `matrix_playbook_migration_expected_version` (see the style guide)."
msgstr ""
#: ../../../AGENTS.md:32
msgid "Every file carries SPDX license headers ([REUSE](https://reuse.software/) specification)."
msgstr ""
#: ../../../AGENTS.md:33
msgid "New components must be registered in `setup.yml`, `group_vars/matrix_servers`, `docs/README.md`, `README.md`, `docs/container-images.md`, and get a `CHANGELOG.md` entry."
msgstr ""
#: ../../../AGENTS.md:35
msgid "Other notes"
msgstr ""
#: ../../../AGENTS.md:37
msgid "Documentation examples use `example.com`, `@alice:example.com`, and the other placeholder values listed in the style guide."
msgstr ""
#: ../../../AGENTS.md:38
msgid "Write role tasks concurrency-safe: use `ansible.builtin.tempfile` for temporary files (removed in an `always` block), never fixed shared paths."
msgstr ""
#: ../../../AGENTS.md:39
msgid "One logical change per commit."
msgstr ""
File diff suppressed because it is too large Load Diff
+40 -52
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-07-12 11:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -288,23 +288,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-client-fluffychat-web.md)" msgid "[Link](docs/configuring-playbook-client-fluffychat-web.md)"
msgstr "" msgstr ""
#: ../../../README.md:0 #: ../../../README.md:72
msgid "[Commet](https://github.com/commetchat/commet)"
msgstr ""
#: ../../../README.md:0
msgid "Matrix web client"
msgstr ""
#: ../../../README.md:0
msgid "[Link](docs/configuring-playbook-client-commet.md)"
msgstr ""
#: ../../../README.md:73
msgid "Server Components" msgid "Server Components"
msgstr "" msgstr ""
#: ../../../README.md:75 #: ../../../README.md:74
msgid "Services that run on the server to make the various parts of your installation work." msgid "Services that run on the server to make the various parts of your installation work."
msgstr "" msgstr ""
@@ -392,11 +380,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-matrix-rtc.md)" msgid "[Link](docs/configuring-playbook-matrix-rtc.md)"
msgstr "" msgstr ""
#: ../../../README.md:87 #: ../../../README.md:86
msgid "Authentication" msgid "Authentication"
msgstr "" msgstr ""
#: ../../../README.md:89 #: ../../../README.md:88
msgid "Extend and modify how users are authenticated on your homeserver." msgid "Extend and modify how users are authenticated on your homeserver."
msgstr "" msgstr ""
@@ -460,11 +448,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-synapse-simple-antispam.md)" msgid "[Link](docs/configuring-playbook-synapse-simple-antispam.md)"
msgstr "" msgstr ""
#: ../../../README.md:99 #: ../../../README.md:98
msgid "File Storage" msgid "File Storage"
msgstr "" msgstr ""
#: ../../../README.md:101 #: ../../../README.md:100
msgid "Use alternative file storage to the default `media_store` folder." msgid "Use alternative file storage to the default `media_store` folder."
msgstr "" msgstr ""
@@ -500,11 +488,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-matrix-media-repo.md)" msgid "[Link](docs/configuring-playbook-matrix-media-repo.md)"
msgstr "" msgstr ""
#: ../../../README.md:109 #: ../../../README.md:108
msgid "Bridges" msgid "Bridges"
msgstr "" msgstr ""
#: ../../../README.md:111 #: ../../../README.md:110
msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." msgid "Bridges can be used to connect your Matrix installation with third-party communication networks."
msgstr "" msgstr ""
@@ -556,18 +544,6 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-bridge-mautrix-gmessages.md)" msgid "[Link](docs/configuring-playbook-bridge-mautrix-gmessages.md)"
msgstr "" msgstr ""
#: ../../../README.md:0
msgid "[mautrix-gvoice](https://github.com/mautrix/gvoice)"
msgstr ""
#: ../../../README.md:0
msgid "Bridge to [Google Voice](https://voice.google.com/)"
msgstr ""
#: ../../../README.md:0
msgid "[Link](docs/configuring-playbook-bridge-mautrix-gvoice.md)"
msgstr ""
#: ../../../README.md:0 #: ../../../README.md:0
msgid "[mautrix-whatsapp](https://github.com/mautrix/whatsapp)" msgid "[mautrix-whatsapp](https://github.com/mautrix/whatsapp)"
msgstr "" msgstr ""
@@ -688,6 +664,18 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-bridge-appservice-irc.md)" msgid "[Link](docs/configuring-playbook-bridge-appservice-irc.md)"
msgstr "" msgstr ""
#: ../../../README.md:0
msgid "[matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk)"
msgstr ""
#: ../../../README.md:0
msgid "Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG)"
msgstr ""
#: ../../../README.md:0
msgid "[Link](docs/configuring-playbook-bridge-appservice-kakaotalk.md)"
msgstr ""
#: ../../../README.md:0 #: ../../../README.md:0
msgid "[matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord)" msgid "[matrix-appservice-discord](https://github.com/matrix-org/matrix-appservice-discord)"
msgstr "" msgstr ""
@@ -808,11 +796,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-bridge-postmoogle.md)" msgid "[Link](docs/configuring-playbook-bridge-postmoogle.md)"
msgstr "" msgstr ""
#: ../../../README.md:141 #: ../../../README.md:140
msgid "Bots" msgid "Bots"
msgstr "" msgstr ""
#: ../../../README.md:143 #: ../../../README.md:142
msgid "Bots provide various additional functionality to your installation." msgid "Bots provide various additional functionality to your installation."
msgstr "" msgstr ""
@@ -900,11 +888,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-bot-buscarron.md)" msgid "[Link](docs/configuring-playbook-bot-buscarron.md)"
msgstr "" msgstr ""
#: ../../../README.md:155 #: ../../../README.md:154
msgid "Administration" msgid "Administration"
msgstr "" msgstr ""
#: ../../../README.md:157 #: ../../../README.md:156
msgid "Services that help you in administrating and monitoring your Matrix installation." msgid "Services that help you in administrating and monitoring your Matrix installation."
msgstr "" msgstr ""
@@ -992,11 +980,11 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-synapse-usage-exporter.md)" msgid "[Link](docs/configuring-playbook-synapse-usage-exporter.md)"
msgstr "" msgstr ""
#: ../../../README.md:169 #: ../../../README.md:168
msgid "Misc" msgid "Misc"
msgstr "" msgstr ""
#: ../../../README.md:171 #: ../../../README.md:170
msgid "Various services that don't fit any other categories." msgid "Various services that don't fit any other categories."
msgstr "" msgstr ""
@@ -1120,54 +1108,54 @@ msgstr ""
msgid "[Link](docs/configuring-playbook-element-call.md)" msgid "[Link](docs/configuring-playbook-element-call.md)"
msgstr "" msgstr ""
#: ../../../README.md:186 #: ../../../README.md:185
msgid "🆕 Changes" msgid "🆕 Changes"
msgstr "" msgstr ""
#: ../../../README.md:188 #: ../../../README.md:187
msgid "This playbook evolves over time, sometimes with backward-incompatible changes." msgid "This playbook evolves over time, sometimes with backward-incompatible changes."
msgstr "" msgstr ""
#: ../../../README.md:190 #: ../../../README.md:189
msgid "When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up with what's new." msgid "When updating the playbook, refer to [the changelog](CHANGELOG.md) to catch up with what's new."
msgstr "" msgstr ""
#: ../../../README.md:192 #: ../../../README.md:191
msgid "🆘 Support" msgid "🆘 Support"
msgstr "" msgstr ""
#: ../../../README.md:194 #: ../../../README.md:193
msgid "Matrix room: [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)" msgid "Matrix room: [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com)"
msgstr "" msgstr ""
#: ../../../README.md:196 #: ../../../README.md:195
msgid "IRC channel: `#matrix-docker-ansible-deploy` on the [Libera Chat](https://libera.chat/) IRC network (irc.libera.chat:6697)" msgid "IRC channel: `#matrix-docker-ansible-deploy` on the [Libera Chat](https://libera.chat/) IRC network (irc.libera.chat:6697)"
msgstr "" msgstr ""
#: ../../../README.md:198 #: ../../../README.md:197
msgid "GitHub issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues)" msgid "GitHub issues: [spantaleev/matrix-docker-ansible-deploy/issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues)"
msgstr "" msgstr ""
#: ../../../README.md:200 #: ../../../README.md:199
msgid "🌐 Translation" msgid "🌐 Translation"
msgstr "" msgstr ""
#: ../../../README.md:202 #: ../../../README.md:201
msgid "See the [i18n/README.md](i18n/README.md) file for more information about translation." msgid "See the [i18n/README.md](i18n/README.md) file for more information about translation."
msgstr "" msgstr ""
#: ../../../README.md:204 #: ../../../README.md:203
msgid "Translations are still work in progress." msgid "Translations are still work in progress."
msgstr "" msgstr ""
#: ../../../README.md:206 #: ../../../README.md:205
msgid "🤝 Related" msgid "🤝 Related"
msgstr "" msgstr ""
#: ../../../README.md:208 #: ../../../README.md:207
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))." 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 "" msgstr ""
#: ../../../README.md:210 #: ../../../README.md:209
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." 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 "" msgstr ""
+3 -7
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-18 04:11+0000\n" "POT-Creation-Date: 2026-06-29 17:11+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -161,17 +161,13 @@ msgid "[Self-building](self-building.md)"
msgstr "" msgstr ""
#: ../../../docs/README.md:93 #: ../../../docs/README.md:93
msgid "[Style guide for playbook developers](style-guide.md)"
msgstr ""
#: ../../../docs/README.md:95
msgid "[Uninstalling](uninstalling.md)" msgid "[Uninstalling](uninstalling.md)"
msgstr "" msgstr ""
#: ../../../docs/README.md:97 #: ../../../docs/README.md:95
msgid "[Updating users passwords](updating-users-passwords.md)" msgid "[Updating users passwords](updating-users-passwords.md)"
msgstr "" msgstr ""
#: ../../../docs/README.md:99 #: ../../../docs/README.md:97
msgid "[Using Ansible for the playbook](ansible.md)" msgid "[Using Ansible for the playbook](ansible.md)"
msgstr "" msgstr ""
+26 -30
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-12 15:37+0000\n" "POT-Creation-Date: 2026-05-19 07:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -101,96 +101,92 @@ msgid "You can either [run Ansible in a container on the Matrix server itself](#
msgstr "" msgstr ""
#: ../../../docs/ansible.md:53 #: ../../../docs/ansible.md:53
msgid "💡 If you use [Visual Studio Code](https://code.visualstudio.com/) or [GitHub Codespaces](https://github.com/features/codespaces), the playbook also ships a [dev container](https://containers.dev/) configuration (see the `.devcontainer/` directory) based on this same Ansible Docker image, which can prepare such a containerized Ansible environment for you automatically."
msgstr ""
#: ../../../docs/ansible.md:55
msgid "Running Ansible in a container on the Matrix server itself" msgid "Running Ansible in a container on the Matrix server itself"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:57 #: ../../../docs/ansible.md:55
msgid "To run Ansible in a (Docker) container on the Matrix server itself, you need to have a working Docker installation. Docker is normally installed by the playbook, so this may be a bit of a chicken and egg problem. To solve it:" msgid "To run Ansible in a (Docker) container on the Matrix server itself, you need to have a working Docker installation. Docker is normally installed by the playbook, so this may be a bit of a chicken and egg problem. To solve it:"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:59 #: ../../../docs/ansible.md:57
msgid "you **either** need to install Docker manually first. Follow [the upstream instructions](https://docs.docker.com/engine/install/) for your distribution and consider setting `matrix_playbook_docker_installation_enabled: false` in your `vars.yml` file, to prevent the playbook from installing Docker" msgid "you **either** need to install Docker manually first. Follow [the upstream instructions](https://docs.docker.com/engine/install/) for your distribution and consider setting `matrix_playbook_docker_installation_enabled: false` in your `vars.yml` file, to prevent the playbook from installing Docker"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:60 #: ../../../docs/ansible.md:58
msgid "**or** you need to run the playbook in another way (e.g. [Running Ansible in a container on another computer (not the Matrix server)](#running-ansible-in-a-container-on-another-computer-not-the-matrix-server)) at least the first time around" msgid "**or** you need to run the playbook in another way (e.g. [Running Ansible in a container on another computer (not the Matrix server)](#running-ansible-in-a-container-on-another-computer-not-the-matrix-server)) at least the first time around"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:62 #: ../../../docs/ansible.md:60
msgid "Once you have a working Docker installation on the server, **clone the playbook** somewhere on the server and configure it as per usual (`inventory/hosts`, `inventory/host_vars/…`, etc.), as described in [configuring the playbook](configuring-playbook.md)." msgid "Once you have a working Docker installation on the server, **clone the playbook** somewhere on the server and configure it as per usual (`inventory/hosts`, `inventory/host_vars/…`, etc.), as described in [configuring the playbook](configuring-playbook.md)."
msgstr "" msgstr ""
#: ../../../docs/ansible.md:64 #: ../../../docs/ansible.md:62
msgid "You would then need to add `ansible_connection=community.docker.nsenter` to the host line in `inventory/hosts`. This tells Ansible to connect to the \"remote\" machine by switching Linux namespaces with [nsenter](https://man7.org/linux/man-pages/man1/nsenter.1.html), instead of using SSH." msgid "You would then need to add `ansible_connection=community.docker.nsenter` to the host line in `inventory/hosts`. This tells Ansible to connect to the \"remote\" machine by switching Linux namespaces with [nsenter](https://man7.org/linux/man-pages/man1/nsenter.1.html), instead of using SSH."
msgstr "" msgstr ""
#: ../../../docs/ansible.md:66 #: ../../../docs/ansible.md:64
msgid "Alternatively, you can leave your `inventory/hosts` as is and specify the connection type in **each** `ansible-playbook` call you do later, like this: `just install-all --connection=community.docker.nsenter` (or `ansible-playbook --connection=community.docker.nsenter …`)." msgid "Alternatively, you can leave your `inventory/hosts` as is and specify the connection type in **each** `ansible-playbook` call you do later, like this: `just install-all --connection=community.docker.nsenter` (or `ansible-playbook --connection=community.docker.nsenter …`)."
msgstr "" msgstr ""
#: ../../../docs/ansible.md:68 #: ../../../docs/ansible.md:66
#: ../../../docs/ansible.md:90 #: ../../../docs/ansible.md:88
msgid "Run this from the playbook's directory:" msgid "Run this from the playbook's directory:"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:80
#: ../../../docs/ansible.md:103
msgid "Once you execute the above command, you'll be dropped into a `/work` directory inside a Docker container. The `/work` directory contains the playbook's code."
msgstr ""
#: ../../../docs/ansible.md:82 #: ../../../docs/ansible.md:82
#: ../../../docs/ansible.md:105 #: ../../../docs/ansible.md:105
msgid "Once you execute the above command, you'll be dropped into a `/work` directory inside a Docker container. The `/work` directory contains the playbook's code."
msgstr ""
#: ../../../docs/ansible.md:84
#: ../../../docs/ansible.md:107
msgid "First, consider running `git config --global --add safe.directory /work` to [resolve directory ownership issues](#resolve-directory-ownership-issues)." msgid "First, consider running `git config --global --add safe.directory /work` to [resolve directory ownership issues](#resolve-directory-ownership-issues)."
msgstr "" msgstr ""
#: ../../../docs/ansible.md:86 #: ../../../docs/ansible.md:84
msgid "Finally, you can execute `just` or `ansible-playbook …` (e.g. `ansible-playbook --connection=community.docker.nsenter …`) commands as per normal now." msgid "Finally, you can execute `just` or `ansible-playbook …` (e.g. `ansible-playbook --connection=community.docker.nsenter …`) commands as per normal now."
msgstr "" msgstr ""
#: ../../../docs/ansible.md:88 #: ../../../docs/ansible.md:86
msgid "Running Ansible in a container on another computer (not the Matrix server)" msgid "Running Ansible in a container on another computer (not the Matrix server)"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:103 #: ../../../docs/ansible.md:101
msgid "The above command tries to mount an SSH key (`$HOME/.ssh/id_ed25519`) into the container (at `/root/.ssh/id_ed25519`). If your SSH key is at a different path (not in `$HOME/.ssh/id_ed25519`), adjust that part." msgid "The above command tries to mount an SSH key (`$HOME/.ssh/id_ed25519`) into the container (at `/root/.ssh/id_ed25519`). If your SSH key is at a different path (not in `$HOME/.ssh/id_ed25519`), adjust that part."
msgstr "" msgstr ""
#: ../../../docs/ansible.md:109 #: ../../../docs/ansible.md:107
msgid "Finally, you execute `just` or `ansible-playbook …` commands as per normal now." msgid "Finally, you execute `just` or `ansible-playbook …` commands as per normal now."
msgstr "" msgstr ""
#: ../../../docs/ansible.md:111 #: ../../../docs/ansible.md:109
msgid "If you don't use SSH keys for authentication" msgid "If you don't use SSH keys for authentication"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:113 #: ../../../docs/ansible.md:111
msgid "If you don't use SSH keys for authentication, simply remove that whole line (`--mount type=bind,src$HOME/.ssh/id_ed25519,dst=/root/.ssh/id_ed25519,ro`)." msgid "If you don't use SSH keys for authentication, simply remove that whole line (`--mount type=bind,src$HOME/.ssh/id_ed25519,dst=/root/.ssh/id_ed25519,ro`)."
msgstr "" msgstr ""
#: ../../../docs/ansible.md:115 #: ../../../docs/ansible.md:113
msgid "To authenticate at your server using a password, you need to add a package. So, when you are in the shell of the ansible docker container (the previously used `docker run -it …` command), run:" msgid "To authenticate at your server using a password, you need to add a package. So, when you are in the shell of the ansible docker container (the previously used `docker run -it …` command), run:"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:121 #: ../../../docs/ansible.md:119
msgid "Then, to be asked for the password whenever running an `ansible-playbook` command add `--ask-pass` to the arguments of the command." msgid "Then, to be asked for the password whenever running an `ansible-playbook` command add `--ask-pass` to the arguments of the command."
msgstr "" msgstr ""
#: ../../../docs/ansible.md:123 #: ../../../docs/ansible.md:121
msgid "Resolve directory ownership issues" msgid "Resolve directory ownership issues"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:125 #: ../../../docs/ansible.md:123
msgid "Because you're `root` in the container running Ansible and this likely differs from the owner (your regular user account) of the playbook directory outside of the container, certain playbook features which use `git` locally may report warnings such as:" msgid "Because you're `root` in the container running Ansible and this likely differs from the owner (your regular user account) of the playbook directory outside of the container, certain playbook features which use `git` locally may report warnings such as:"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:127 #: ../../../docs/ansible.md:125
msgid "fatal: unsafe repository ('/work' is owned by someone else) To add an exception for this directory, call: git config --global --add safe.directory /work" msgid "fatal: unsafe repository ('/work' is owned by someone else) To add an exception for this directory, call: git config --global --add safe.directory /work"
msgstr "" msgstr ""
#: ../../../docs/ansible.md:131 #: ../../../docs/ansible.md:129
msgid "These errors can be resolved by making `git` trust the playbook directory by running `git config --global --add safe.directory /work`" msgid "These errors can be resolved by making `git` trust the playbook directory by running `git config --global --add safe.directory /work`"
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -33,59 +33,43 @@ msgid "The captcha mechanism used is Google's [ReCaptcha](https://www.google.com
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:18 #: ../../../docs/configuring-captcha.md:18
msgid "If you are using [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md), captcha is configured there instead (it handles registration), and [Cloudflare Turnstile](https://www.cloudflare.com/application-services/products/turnstile/) is supported as well. See [Matrix Authentication Service](#matrix-authentication-service) below." msgid "ReCaptcha"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:20 #: ../../../docs/configuring-captcha.md:20
msgid "ReCaptcha" #: ../../../docs/configuring-captcha.md:46
msgid "Getting keys"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:22 #: ../../../docs/configuring-captcha.md:22
#: ../../../docs/configuring-captcha.md:48 #: ../../../docs/configuring-captcha.md:48
msgid "Getting keys"
msgstr ""
#: ../../../docs/configuring-captcha.md:24
#: ../../../docs/configuring-captcha.md:50
msgid "Requires a site/secret key pair from:" msgid "Requires a site/secret key pair from:"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:26 #: ../../../docs/configuring-captcha.md:24
msgid "<http://www.google.com/recaptcha/admin>" msgid "<http://www.google.com/recaptcha/admin>"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:28 #: ../../../docs/configuring-captcha.md:26
msgid "Must be a reCAPTCHA **v2** key using the \"I'm not a robot\" Checkbox option" msgid "Must be a reCAPTCHA **v2** key using the \"I'm not a robot\" Checkbox option"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:30 #: ../../../docs/configuring-captcha.md:28
msgid "Setting ReCaptcha keys" msgid "Setting ReCaptcha keys"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:32 #: ../../../docs/configuring-captcha.md:30
msgid "Once registered as above, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" msgid "Once registered as above, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:46 #: ../../../docs/configuring-captcha.md:44
msgid "hCaptcha" msgid "hCaptcha"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:52 #: ../../../docs/configuring-captcha.md:50
msgid "<https://dashboard.hcaptcha.com/sites/new>" msgid "<https://dashboard.hcaptcha.com/sites/new>"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:54 #: ../../../docs/configuring-captcha.md:52
msgid "Setting hCaptcha keys" msgid "Setting hCaptcha keys"
msgstr "" msgstr ""
#: ../../../docs/configuring-captcha.md:67
msgid "Matrix Authentication Service"
msgstr ""
#: ../../../docs/configuring-captcha.md:69
msgid "When [Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) is enabled, registration and other account operations are handled by it, so captcha protection is configured there (the Synapse and Dendrite settings above do not apply)."
msgstr ""
#: ../../../docs/configuring-captcha.md:71
msgid "Matrix Authentication Service supports [ReCaptcha v2](http://www.google.com/recaptcha/admin), [Cloudflare Turnstile](https://www.cloudflare.com/application-services/products/turnstile/) and [hCaptcha](https://dashboard.hcaptcha.com/sites/new). Obtain a site/secret key pair from your chosen service, then add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:"
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -73,7 +73,7 @@ msgid "`roles/custom/matrix-bridge-appservice-discord/defaults/main.yml` for som
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:47 #: ../../../docs/configuring-playbook-bridge-appservice-discord.md:47
msgid "`roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_appservice_discord_configuration_extension_yaml` variable" msgid "`roles/custom/matrix-bridge-appservice-discord/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_discord_configuration_extension_yaml` variable"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:49 #: ../../../docs/configuring-playbook-bridge-appservice-discord.md:49
@@ -150,7 +150,7 @@ msgid "To get started with Portal Bridging:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:101 #: ../../../docs/configuring-playbook-bridge-appservice-discord.md:101
msgid "To invite the bot to Discord, retrieve the invite link from the `{{ matrix_bridge_appservice_discord_config_path }}/invite_link` file on the server (this defaults to `/matrix/appservice-discord/config/invite_link`). You need to peek at the file on the server via SSH, etc., because it's not available via HTTP(S)." msgid "To invite the bot to Discord, retrieve the invite link from the `{{ matrix_appservice_discord_config_path }}/invite_link` file on the server (this defaults to `/matrix/appservice-discord/config/invite_link`). You need to peek at the file on the server via SSH, etc., because it's not available via HTTP(S)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-discord.md:102 #: ../../../docs/configuring-playbook-bridge-appservice-discord.md:102
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -57,7 +57,7 @@ msgid "`roles/custom/matrix-bridge-appservice-irc/defaults/main.yml` for some va
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:79 #: ../../../docs/configuring-playbook-bridge-appservice-irc.md:79
msgid "`roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_appservice_irc_configuration_extension_yaml` variable" msgid "`roles/custom/matrix-bridge-appservice-irc/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_irc_configuration_extension_yaml` variable"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-irc.md:81 #: ../../../docs/configuring-playbook-bridge-appservice-irc.md:81
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-05-19 07:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -17,21 +17,109 @@ msgstr ""
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:10 #: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:10
msgid "Setting up Appservice Kakaotalk bridging (optional, removed)" msgid "Setting up Appservice Kakaotalk bridging (optional)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:12 #: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:12
msgid "🪦 The playbook used to be able to install and configure [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) (a bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG)), but no longer includes this component." msgid "The playbook can install and configure [matrix-appservice-kakaotalk](https://src.miscworks.net/fair/matrix-appservice-kakaotalk) for you, for bridging to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG). This bridge is based on [node-kakao](https://github.com/storycraft/node-kakao) (now unmaintained) and some [mautrix-facebook](https://github.com/mautrix/facebook) code."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:14 #: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:14
msgid "The bridge could only be installed by self-building its source code, and its upstream repository has become unreachable, which makes installation impossible. The bridge was also based on the now-unmaintained [node-kakao](https://github.com/storycraft/node-kakao) library, and there have been reports that using it may get your Kakaotalk account banned." msgid "See the project's [documentation](https://src.miscworks.net/fair/matrix-appservice-kakaotalk/src/branch/master/README.md) to learn what it does and why it might be useful to you."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:16 #: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:17
msgid "Uninstalling the component manually" msgid "There have been recent reports (~2022-09-16) that **using this bridge may get your account banned**."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:18 #: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:19
msgid "If you still have matrix-appservice-kakaotalk installed on your Matrix server, the playbook can no longer help you uninstall it and you will need to do it manually. To uninstall manually, run these commands on the server:" msgid "Prerequisite (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:21
msgid "Enable Shared Secret Auth"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:23
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 [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) for this playbook."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:25
msgid "See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-puppeting-optional) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about setting up Double Puppeting."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:27
msgid "**Note**: 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-appservice-kakaotalk.md:29
msgid "Adjusting the playbook configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:31
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-appservice-kakaotalk.md:37
msgid "Extending the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:39
msgid "There are some additional things you may wish to configure about the bridge."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:41
msgid "Take a look at:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:43
msgid "`roles/custom/matrix-bridge-appservice-kakaotalk/defaults/main.yml` for some variables that you can customize via your `vars.yml` file"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:44
msgid "`roles/custom/matrix-bridge-appservice-kakaotalk/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_appservice_kakaotalk_configuration_extension_yaml` variable"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:46
msgid "Installing"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:48
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:55
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-appservice-kakaotalk.md:57
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-appservice-kakaotalk.md:59
msgid "Usage"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:61
msgid "To use the bridge, you need to start a chat with `@kakaotalkbot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:63
msgid "You then need to send `login --save EMAIL_OR_PHONE_NUMBER` to the bridge bot to enable bridging for your Kakaotalk account. The `--save` flag may be omitted, if you'd rather not save your password."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:65
msgid "Troubleshooting"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:67
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-appservice-kakaotalk`."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:69
msgid "Increase logging verbosity"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-appservice-kakaotalk.md:71
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:"
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -57,7 +57,7 @@ msgid "Adjusting the Heisenbridge URL (optional)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:40 #: ../../../docs/configuring-playbook-bridge-heisenbridge.md:40
msgid "By tweaking the `matrix_bridge_heisenbridge_hostname` and `matrix_bridge_heisenbridge_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one." msgid "By tweaking the `matrix_heisenbridge_hostname` and `matrix_heisenbridge_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-heisenbridge.md:42 #: ../../../docs/configuring-playbook-bridge-heisenbridge.md:42
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -56,103 +56,95 @@ msgstr ""
msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `GITHUB_PRIVATE_KEY_HERE` with the one created [above](#download-github-app-private-key)." msgid "Add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file. Make sure to replace `GITHUB_PRIVATE_KEY_HERE` with the one created [above](#download-github-app-private-key)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:44 #: ../../../docs/configuring-playbook-bridge-hookshot.md:43
msgid "End-to-bridge encryption also requires the homeserver to support (and have enabled) [MSC2409](https://github.com/matrix-org/matrix-spec-proposals/pull/2409) and [MSC3202](https://github.com/matrix-org/matrix-spec-proposals/pull/3202). If you are using Synapse, enable them by also adding this to your `vars.yml` file:" msgid "For each of the services (GitHub, GitLab, Jira, Figma, and generic webhooks) fill in the respective variables `matrix_hookshot_service_*` listed in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) as required."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:51 #: ../../../docs/configuring-playbook-bridge-hookshot.md:45
msgid "These are experimental homeserver-wide features (as is Hookshot's encryption support itself), so enable them deliberately." msgid "Take special note of the `matrix_hookshot_*_enabled` variables. Services that need no further configuration are enabled by default (GitLab and generic webhooks), while you must first add the required configuration and enable the others (GitHub, Jira, and Figma)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:53 #: ../../../docs/configuring-playbook-bridge-hookshot.md:47
msgid "For each of the services (GitHub, GitLab, Jira, Figma, and generic webhooks) fill in the respective variables `matrix_bridge_hookshot_service_*` listed in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) as required."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:55
msgid "Take special note of the `matrix_bridge_hookshot_*_enabled` variables. Services that need no further configuration are enabled by default (GitLab and generic webhooks), while you must first add the required configuration and enable the others (GitHub, Jira, and Figma)."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:57
msgid "Extending the configuration" msgid "Extending the configuration"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:59 #: ../../../docs/configuring-playbook-bridge-hookshot.md:49
msgid "There are some additional things you may wish to configure about the bridge." msgid "There are some additional things you may wish to configure about the bridge."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:61 #: ../../../docs/configuring-playbook-bridge-hookshot.md:51
msgid "Take a look at:" msgid "Take a look at:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:63 #: ../../../docs/configuring-playbook-bridge-hookshot.md:53
msgid "`roles/custom/matrix-bridge-hookshot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file" msgid "`roles/custom/matrix-bridge-hookshot/defaults/main.yml` for some variables that you can customize via your `vars.yml` file"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:64 #: ../../../docs/configuring-playbook-bridge-hookshot.md:54
msgid "`roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_hookshot_configuration_extension_yaml` and `matrix_bridge_hookshot_registration_extension_yaml` variables" msgid "`roles/custom/matrix-bridge-hookshot/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_hookshot_configuration_extension_yaml` and `matrix_hookshot_registration_extension_yaml` variables"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:66 #: ../../../docs/configuring-playbook-bridge-hookshot.md:56
msgid "Refer the [official instructions](https://matrix-org.github.io/matrix-hookshot/latest/setup.html) and the comments in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) to learn what the individual options do." msgid "Refer the [official instructions](https://matrix-org.github.io/matrix-hookshot/latest/setup.html) and the comments in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) to learn what the individual options do."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:68 #: ../../../docs/configuring-playbook-bridge-hookshot.md:58
msgid "Installing" msgid "Installing"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:70 #: ../../../docs/configuring-playbook-bridge-hookshot.md:60
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:" msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:77 #: ../../../docs/configuring-playbook-bridge-hookshot.md:67
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service hookshot` or `just setup-all`" msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-service hookshot` or `just setup-all`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:79 #: ../../../docs/configuring-playbook-bridge-hookshot.md:69
msgid "`just install-service hookshot` is useful for maintaining your setup quickly 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 `just setup-all` runs the `ensure-matrix-users-created` tag too." msgid "`just install-service hookshot` is useful for maintaining your setup quickly 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 `just setup-all` runs the `ensure-matrix-users-created` tag too."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:81 #: ../../../docs/configuring-playbook-bridge-hookshot.md:71
msgid "Usage" msgid "Usage"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:83 #: ../../../docs/configuring-playbook-bridge-hookshot.md:73
msgid "To use the bridge, you need to create a room and invite the Hookshot bot (`@hookshot:example.com`) to it." msgid "To use the bridge, you need to create a room and invite the Hookshot bot (`@hookshot:example.com`) to it."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:85 #: ../../../docs/configuring-playbook-bridge-hookshot.md:75
msgid "Make sure the bot is able to send state events (usually the Moderator power level in clients)." msgid "Make sure the bot is able to send state events (usually the Moderator power level in clients)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:87 #: ../../../docs/configuring-playbook-bridge-hookshot.md:77
msgid "Send `!hookshot help` to the bot to see the available commands." msgid "Send `!hookshot help` to the bot to see the available commands."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:89 #: ../../../docs/configuring-playbook-bridge-hookshot.md:79
msgid "Refer to [Hookshot's documentation](https://matrix-org.github.io/matrix-hookshot/latest/usage.html) for more details about using the bridge's various features." msgid "Refer to [Hookshot's documentation](https://matrix-org.github.io/matrix-hookshot/latest/usage.html) for more details about using the bridge's various features."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:91 #: ../../../docs/configuring-playbook-bridge-hookshot.md:81
msgid "💡 **Note**: the different listeners are bound to certain paths which might differ from those assumed by the hookshot documentation. See [URLs for bridges setup](#urls-for-bridges-setup) below." msgid "💡 **Note**: the different listeners are bound to certain paths which might differ from those assumed by the hookshot documentation. See [URLs for bridges setup](#urls-for-bridges-setup) below."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:93 #: ../../../docs/configuring-playbook-bridge-hookshot.md:83
msgid "Reset crypto store" msgid "Reset crypto store"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:95 #: ../../../docs/configuring-playbook-bridge-hookshot.md:85
msgid "Should the crypto store be corrupted, you can reset it by executing this Ansible playbook with the tag `reset-hookshot-encryption` added:" msgid "Should the crypto store be corrupted, you can reset it by executing this Ansible playbook with the tag `reset-hookshot-encryption` added:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:101 #: ../../../docs/configuring-playbook-bridge-hookshot.md:91
msgid "More setup documentation" msgid "More setup documentation"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:103 #: ../../../docs/configuring-playbook-bridge-hookshot.md:93
msgid "URLs for bridges setup" msgid "URLs for bridges setup"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:105 #: ../../../docs/configuring-playbook-bridge-hookshot.md:95
msgid "Unless indicated otherwise, the following endpoints are reachable on your `matrix.` subdomain (if the feature is enabled)." msgid "Unless indicated otherwise, the following endpoints are reachable on your `matrix.` subdomain (if the feature is enabled)."
msgstr "" msgstr ""
@@ -181,7 +173,7 @@ msgid "`/hookshot/webhooks/`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
msgid "`matrix_bridge_hookshot_webhook_endpoint`" msgid "`matrix_hookshot_webhook_endpoint`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
@@ -197,7 +189,7 @@ msgid "`/hookshot/webhooks/webhook`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
msgid "`matrix_bridge_hookshot_generic_endpoint`" msgid "`matrix_hookshot_generic_endpoint`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
@@ -213,7 +205,7 @@ msgid "`/hookshot/webhooks/oauth`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
msgid "`matrix_bridge_hookshot_github_oauth_endpoint`" msgid "`matrix_hookshot_github_oauth_endpoint`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
@@ -229,7 +221,7 @@ msgid "`/hookshot/webhooks/jira/oauth`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
msgid "`matrix_bridge_hookshot_jira_oauth_endpoint`" msgid "`matrix_hookshot_jira_oauth_endpoint`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
@@ -245,7 +237,7 @@ msgid "`/hookshot/webhooks/figma/webhook`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
msgid "`matrix_bridge_hookshot_figma_endpoint`" msgid "`matrix_hookshot_figma_endpoint`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
@@ -261,7 +253,7 @@ msgid "`/hookshot/_matrix/app/`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
msgid "`matrix_bridge_hookshot_appservice_endpoint`" msgid "`matrix_hookshot_appservice_endpoint`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
@@ -277,105 +269,105 @@ msgid "`/hookshot/widgetapi/`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
msgid "`matrix_bridge_hookshot_widgets_endpoint`" msgid "`matrix_hookshot_widgets_endpoint`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:0 #: ../../../docs/configuring-playbook-bridge-hookshot.md:0
msgid "Widgets" msgid "Widgets"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:117 #: ../../../docs/configuring-playbook-bridge-hookshot.md:107
msgid "Also see the various `matrix_bridge_hookshot_container_labels_*` variables in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml), which expose URLs publicly." msgid "Also see the various `matrix_hookshot_container_labels_*` variables in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml), which expose URLs publicly."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:119 #: ../../../docs/configuring-playbook-bridge-hookshot.md:109
msgid "The different listeners are also reachable *internally* in the docker-network via the container's name (configured by `matrix_bridge_hookshot_container_url`) and on different ports (e.g. `matrix_bridge_hookshot_appservice_port`). Read [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) in detail for more info." msgid "The different listeners are also reachable *internally* in the docker-network via the container's name (configured by `matrix_hookshot_container_url`) and on different ports (e.g. `matrix_hookshot_appservice_port`). Read [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml) in detail for more info."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:121 #: ../../../docs/configuring-playbook-bridge-hookshot.md:111
msgid "Manage GitHub Private Key with aux role" msgid "Manage GitHub Private Key with aux role"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:123 #: ../../../docs/configuring-playbook-bridge-hookshot.md:113
msgid "The GitHub bridge requires you to install a private key file. This can be done in multiple ways:" msgid "The GitHub bridge requires you to install a private key file. This can be done in multiple ways:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:125 #: ../../../docs/configuring-playbook-bridge-hookshot.md:115
msgid "copy the *contents* of the downloaded file and set the variable `matrix_bridge_hookshot_github_private_key` to the contents (see example in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml))." msgid "copy the *contents* of the downloaded file and set the variable `matrix_hookshot_github_private_key` to the contents (see example in [main.yml](../roles/custom/matrix-bridge-hookshot/defaults/main.yml))."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:126 #: ../../../docs/configuring-playbook-bridge-hookshot.md:116
msgid "somehow copy the file to the path `{{ matrix_bridge_hookshot_base_path }}/{{ matrix_bridge_hookshot_github_private_key_file }}` (default: `/matrix/hookshot/private-key.pem`) on the server manually." msgid "somehow copy the file to the path `{{ matrix_hookshot_base_path }}/{{ matrix_hookshot_github_private_key_file }}` (default: `/matrix/hookshot/private-key.pem`) on the server manually."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:127 #: ../../../docs/configuring-playbook-bridge-hookshot.md:117
msgid "use the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) to copy the file from an arbitrary path on your ansible client to the correct path on the server." msgid "use the [`aux` role](https://github.com/mother-of-all-self-hosting/ansible-role-aux) to copy the file from an arbitrary path on your ansible client to the correct path on the server."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:129 #: ../../../docs/configuring-playbook-bridge-hookshot.md:119
msgid "To use the `aux` role, make sure the `matrix_bridge_hookshot_github_private_key` variable is empty. Then add the following configuration to your `vars.yml` file:" msgid "To use the `aux` role, make sure the `matrix_hookshot_github_private_key` variable is empty. Then add the following configuration to your `vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:140 #: ../../../docs/configuring-playbook-bridge-hookshot.md:130
msgid "For more information, see the documentation in the [default configuration of the aux role](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml)." msgid "For more information, see the documentation in the [default configuration of the aux role](https://github.com/mother-of-all-self-hosting/ansible-role-aux/blob/main/defaults/main.yml)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:142 #: ../../../docs/configuring-playbook-bridge-hookshot.md:132
msgid "Enable metrics" msgid "Enable metrics"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:144 #: ../../../docs/configuring-playbook-bridge-hookshot.md:134
msgid "The playbook can enable and configure the metrics of the service for you." msgid "The playbook can enable and configure the metrics of the service for you."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:146 #: ../../../docs/configuring-playbook-bridge-hookshot.md:136
msgid "Metrics are **only enabled by default** if the builtin [Prometheus](configuring-playbook-prometheus-grafana.md) is enabled (by default, Prometheus isn't enabled). If so, metrics will automatically be collected by Prometheus and made available in Grafana. You will, however, need to set up your own Dashboard for displaying them." msgid "Metrics are **only enabled by default** if the builtin [Prometheus](configuring-playbook-prometheus-grafana.md) is enabled (by default, Prometheus isn't enabled). If so, metrics will automatically be collected by Prometheus and made available in Grafana. You will, however, need to set up your own Dashboard for displaying them."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:148 #: ../../../docs/configuring-playbook-bridge-hookshot.md:138
msgid "To enable the metrics, add the following configuration to your `vars.yml` file:" msgid "To enable the metrics, add the following configuration to your `vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:155 #: ../../../docs/configuring-playbook-bridge-hookshot.md:145
msgid "**To collect metrics from an external Prometheus server**, besides enabling metrics as described above, you will also need to enable metrics exposure on `https://matrix.example.com/metrics/hookshot` by adding the following configuration to your `vars.yml` file:" msgid "**To collect metrics from an external Prometheus server**, besides enabling metrics as described above, you will also need to enable metrics exposure on `https://matrix.example.com/metrics/hookshot` by adding the following configuration to your `vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:161 #: ../../../docs/configuring-playbook-bridge-hookshot.md:151
msgid "By default metrics are exposed publicly **without** password-protection. To password-protect the metrics with dedicated credentials, add the following configuration to your `vars.yml` file:" msgid "By default metrics are exposed publicly **without** password-protection. To password-protect the metrics with dedicated credentials, add the following configuration to your `vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:168 #: ../../../docs/configuring-playbook-bridge-hookshot.md:158
msgid "To `matrix_bridge_hookshot_container_labels_metrics_middleware_basic_auth_users`, set the Basic Authentication credentials (raw `htpasswd` file content) used to protect the endpoint. See https://doc.traefik.io/traefik/middlewares/http/basicauth/#users for details about it." msgid "To `matrix_hookshot_container_labels_metrics_middleware_basic_auth_users`, set the Basic Authentication credentials (raw `htpasswd` file content) used to protect the endpoint. See https://doc.traefik.io/traefik/middlewares/http/basicauth/#users for details about it."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:170 #: ../../../docs/configuring-playbook-bridge-hookshot.md:160
msgid "**Note**: alternatively, you can use `matrix_metrics_exposure_enabled` to expose all services on this `/metrics/*` feature, and you can use `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users` to password-protect the metrics of them. See [this section](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) for more information." msgid "**Note**: alternatively, you can use `matrix_metrics_exposure_enabled` to expose all services on this `/metrics/*` feature, and you can use `matrix_metrics_exposure_http_basic_auth_enabled` and `matrix_metrics_exposure_http_basic_auth_users` to password-protect the metrics of them. See [this section](configuring-playbook-prometheus-grafana.md#collecting-metrics-to-an-external-prometheus-server) for more information."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:172 #: ../../../docs/configuring-playbook-bridge-hookshot.md:162
msgid "Enable Grafana (optional)" msgid "Enable Grafana (optional)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:174 #: ../../../docs/configuring-playbook-bridge-hookshot.md:164
msgid "Probably you wish to enable Grafana along with Prometheus for generating graphs of the metrics." msgid "Probably you wish to enable Grafana along with Prometheus for generating graphs of the metrics."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:176 #: ../../../docs/configuring-playbook-bridge-hookshot.md:166
msgid "To enable Grafana, see [this section](configuring-playbook-prometheus-grafana.md#adjusting-the-playbook-configuration-grafana) for instructions." msgid "To enable Grafana, see [this section](configuring-playbook-prometheus-grafana.md#adjusting-the-playbook-configuration-grafana) for instructions."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:178 #: ../../../docs/configuring-playbook-bridge-hookshot.md:168
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:180 #: ../../../docs/configuring-playbook-bridge-hookshot.md:170
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-hookshot`." 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-hookshot`."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:182 #: ../../../docs/configuring-playbook-bridge-hookshot.md:172
msgid "Increase logging verbosity" msgid "Increase logging verbosity"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-hookshot.md:184 #: ../../../docs/configuring-playbook-bridge-hookshot.md:174
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:" 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 "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -57,7 +57,7 @@ msgid "Take a look at:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:49 #: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:49
msgid "`roles/custom/matrix-bridge-sms/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_bridge_sms_configuration_extension_yaml` variable" msgid "`roles/custom/matrix-bridge-sms/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_sms_bridge_configuration_extension_yaml` variable"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:51 #: ../../../docs/configuring-playbook-bridge-matrix-bridge-sms.md:51
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-06-29 17:11+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -41,11 +41,11 @@ msgid "To enable the bridge, add the following configuration to your `inventory/
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:27 #: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:27
msgid "**Note**: for bridging to Meta's Messenger or Instagram, you would need to add `meta` with an underscore symbol (`_`) or hyphen (`-`) based on the context as prefix to each `SERVICENAME`; add `_` to variables (as in `matrix_bridge_mautrix_meta_messenger_configuration_extension_yaml` for example) and `-` to paths of the configuration files (as in `roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2`), respectively." msgid "**Note**: for bridging to Meta's Messenger or Instagram, you would need to add `meta` with an underscore symbol (`_`) or hyphen (`-`) based on the context as prefix to each `SERVICENAME`; add `_` to variables (as in `matrix_mautrix_meta_messenger_configuration_extension_yaml` for example) and `-` to paths of the configuration files (as in `roles/custom/matrix-bridge-mautrix-meta-messenger/templates/config.yaml.j2`), respectively."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:29 #: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:29
msgid "There are some additional things you may wish to configure about the bridge before you continue. Each bridge may have additional requirements besides `_enabled: true`. For example, the mautrix-telegram bridge (our documentation page about it is [here](configuring-playbook-bridge-mautrix-telegram.md)) requires the `matrix_bridge_mautrix_telegram_api_id` and `matrix_bridge_mautrix_telegram_api_hash` variables to be defined. Refer to each bridge's individual documentation page for details about enabling bridges." msgid "There are some additional things you may wish to configure about the bridge before you continue. Each bridge may have additional requirements besides `_enabled: true`. For example, the mautrix-telegram bridge (our documentation page about it is [here](configuring-playbook-bridge-mautrix-telegram.md)) requires the `matrix_mautrix_telegram_api_id` and `matrix_mautrix_telegram_api_hash` variables to be defined. Refer to each bridge's individual documentation page for details about enabling bridges."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:31 #: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:31
@@ -110,7 +110,7 @@ msgid "**for all bridges with relay mode support**:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:95 #: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:95
msgid "You can only have one `matrix_bridge_mautrix_SERVICENAME_configuration_extension_yaml` definition in `vars.yml` per bridge, so if you need multiple pieces of configuration there, just merge them like this:" msgid "You can only have one `matrix_mautrix_SERVICENAME_configuration_extension_yaml` definition in `vars.yml` per bridge, so if you need multiple pieces of configuration there, just merge them like this:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:109 #: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:109
@@ -202,7 +202,7 @@ msgid "`roles/custom/matrix-bridge-mautrix-SERVICENAME/defaults/main.yml` for so
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:177 #: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:177
msgid "`roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_mautrix_SERVICENAME_configuration_extension_yaml` variable" msgid "`roles/custom/matrix-bridge-mautrix-SERVICENAME/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_mautrix_SERVICENAME_configuration_extension_yaml` variable"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:179 #: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:179
@@ -286,7 +286,7 @@ msgid "Previously there were multiple different automatic double puppeting metho
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:229 #: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:229
msgid "Some bridges like [the deprecated Facebook mautrix bridge](configuring-playbook-bridge-mautrix-facebook.md) are compatible with the Shared Secret Auth service only. These bridges automatically perform Double Puppeting if [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service is configured and enabled on the server for this playbook." msgid "Some bridges like [the deprecated Facebook mautrix bridge](configuring-playbook-bridge-mautrix-facebook.md) and [matrix-appservice-kakaotalk](configuring-playbook-bridge-appservice-kakaotalk.md), which is partially based on the Facebook bridge, are compatible with the Shared Secret Auth service only. These bridges automatically perform Double Puppeting if [Shared Secret Auth](configuring-playbook-shared-secret-auth.md) service is configured and enabled on the server for this playbook."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:231 #: ../../../docs/configuring-playbook-bridge-mautrix-bridges.md:231
@@ -1,121 +0,0 @@
# 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-07-16 13:47+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-mautrix-gvoice.md:8
msgid "Setting up Mautrix Google Voice bridging (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:10
msgid "<sup>Refer the common guide for configuring mautrix bridges: [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md)</sup>"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:12
msgid "The playbook can install and configure [mautrix-gvoice](https://github.com/mautrix/gvoice) for you, for bridging to [Google Voice](https://voice.google.com/)."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:14
msgid "See the project's [documentation](https://docs.mau.fi/bridges/go/gvoice/index.html) to learn what it does and why it might be useful to you."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:16
msgid "Prerequisite (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:18
msgid "Enable Appservice Double Puppet"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:20
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) for this playbook."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:22
msgid "See [this section](configuring-playbook-bridge-mautrix-bridges.md#set-up-double-puppeting-optional) on the [common guide for configuring mautrix bridges](configuring-playbook-bridge-mautrix-bridges.md) for details about setting up Double Puppeting."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:24
msgid "Adjusting the playbook configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.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-mautrix-gvoice.md:32
msgid "Extending the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:34
msgid "There are some additional things you may wish to configure about the bridge."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:37
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-gvoice.md:39
msgid "Installing"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:41
msgid "After configuring the playbook, run it with [playbook tags](playbook-tags.md) as below:"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:48
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-gvoice.md:50
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-gvoice.md:52
msgid "Usage"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:54
msgid "To use the bridge, start a chat with `@gvoicebot:example.com` (where `example.com` is your base domain, not the `matrix.` domain)."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:56
msgid "Google Voice has no phone to pair and no QR code to scan. It logs in with cookies, which you copy from a browser already signed in to [voice.google.com](https://voice.google.com/) and hand to the bot. It is fiddlier than scanning a code and feels more suspicious than it is, but Google leaves no cleaner door open. The bridge's [official Authentication guide](https://docs.mau.fi/bridges/go/gvoice/authentication.html) has the exact cookies to grab and the steps for grabbing them."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:58
msgid "Those cookies are a login session, and Google expires them on its own schedule. When they lapse the bridge goes quiet and you log in again. Nothing is broken, that is just how cookie auth ages."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:60
msgid "Once you log in, the bridge builds portal rooms for your recent conversations and carries text and media both ways. Don't reach for it to start a brand-new chat or to place a call, though. That ground still belongs to Google Voice, so keep the app around for those."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:62
msgid "Troubleshooting"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:64
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-gvoice`."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:66
msgid "Increase logging verbosity"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-gvoice.md:68
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 ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -53,7 +53,7 @@ msgid "If you've been using the [mautrix-instagram](./configuring-playbook-bridg
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:26 #: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:26
msgid "both trying to use `@instagrambot:example.com` as their username. This conflict may be resolved by adjusting `matrix_mautrix_instagram_appservice_bot_username` or `matrix_bridge_mautrix_meta_instagram_appservice_username`" msgid "both trying to use `@instagrambot:example.com` as their username. This conflict may be resolved by adjusting `matrix_mautrix_instagram_appservice_bot_username` or `matrix_mautrix_meta_instagram_appservice_username`"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:27 #: ../../../docs/configuring-playbook-bridge-mautrix-meta-instagram.md:27
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -113,7 +113,7 @@ msgid "(default) (`messenger`) Messenger via `messenger.com` — usable even wit
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:59 #: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:59
msgid "You may switch the mode via the `matrix_bridge_mautrix_meta_messenger_meta_mode` variable. The playbook defaults to the `messenger` mode, because it's most universal (every Facebook user has a Messenger account, but the opposite is not true)." msgid "You may switch the mode via the `matrix_mautrix_meta_messenger_meta_mode` variable. The playbook defaults to the `messenger` mode, because it's most universal (every Facebook user has a Messenger account, but the opposite is not true)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:61 #: ../../../docs/configuring-playbook-bridge-mautrix-meta-messenger.md:61
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -45,7 +45,7 @@ msgid "If you're running with the Postgres database server integrated by the pla
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:31 #: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:31
msgid "However, if you're [using an external Postgres server](configuring-playbook-external-postgres.md), you'd need to manually prepare a Postgres database for this bridge and adjust the variables related to that (`matrix_bridge_mautrix_signal_database_*`)." msgid "However, if you're [using an external Postgres server](configuring-playbook-external-postgres.md), you'd need to manually prepare a Postgres database for this bridge and adjust the variables related to that (`matrix_mautrix_signal_database_*`)."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:33 #: ../../../docs/configuring-playbook-bridge-mautrix-signal.md:33
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -61,7 +61,7 @@ msgid "Adjusting the wsproxy URL (optional)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:41 #: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:41
msgid "By tweaking the `matrix_bridge_mautrix_wsproxy_hostname` variable, you can easily make the service available at a **different hostname** than the default one." msgid "By tweaking the `matrix_mautrix_wsproxy_hostname` variable, you can easily make the service available at a **different hostname** than the default one."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:43 #: ../../../docs/configuring-playbook-bridge-mautrix-wsproxy.md:43
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -61,7 +61,7 @@ msgid "To enable the bridge, add the following configuration to your `inventory/
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:56 #: ../../../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_bridge_meshtastic_relay_matrix_bot_user_id`." msgid "By default, the bot's Matrix ID is `@meshtasticbot:{{ matrix_domain }}`. To change it, adjust `matrix_meshtastic_relay_matrix_bot_user_id`."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:58 #: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:58
@@ -69,7 +69,7 @@ msgid "Bluetooth (BLE) connections"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:60 #: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:60
msgid "When `matrix_bridge_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." 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 "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:62 #: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:62
@@ -77,7 +77,7 @@ msgid "Serial connections"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:64 #: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:64
msgid "When `matrix_bridge_meshtastic_relay_connection_type` is `serial`, the host device referenced by `matrix_bridge_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)." 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 "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:66 #: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:66
@@ -93,7 +93,7 @@ msgid "Take a look at:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:72 #: ../../../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_bridge_meshtastic_relay_*` variables, or make finer-grained adjustments via `matrix_bridge_meshtastic_relay_configuration_extension_yaml`." 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 "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:74 #: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:74
@@ -117,7 +117,7 @@ msgid "Usage"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:89 #: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:89
msgid "Invite the bot to the Matrix rooms listed in `matrix_bridge_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." 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 "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:91 #: ../../../docs/configuring-playbook-bridge-meshtastic-relay.md:91
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-04-03 11:56+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -53,7 +53,7 @@ msgid "If you don't open these ports, you will still be able to send emails, but
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-postmoogle.md:27 #: ../../../docs/configuring-playbook-bridge-postmoogle.md:27
msgid "These port numbers are configurable via the `matrix_bridge_postmoogle_smtp_host_bind_port` and `matrix_bridge_postmoogle_submission_host_bind_port` variables, but other email servers will try to deliver on these default (standard) ports, so changing them is of little use." msgid "These port numbers are configurable via the `matrix_postmoogle_smtp_host_bind_port` and `matrix_postmoogle_submission_host_bind_port` variables, but other email servers will try to deliver on these default (standard) ports, so changing them is of little use."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-postmoogle.md:29 #: ../../../docs/configuring-playbook-bridge-postmoogle.md:29
@@ -189,7 +189,7 @@ msgid "`just install-all` is useful for maintaining your setup quickly ([2x-5x f
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-postmoogle.md:90 #: ../../../docs/configuring-playbook-bridge-postmoogle.md:90
msgid "If you change the bridge's bot password (`matrix_bridge_postmoogle_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_bridge_postmoogle_password` to let the bot know its new password." msgid "If you change the bridge's bot password (`matrix_postmoogle_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_postmoogle_password` to let the bot know its new password."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-postmoogle.md:92 #: ../../../docs/configuring-playbook-bridge-postmoogle.md:92
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-06-29 17:11+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -151,23 +151,3 @@ msgstr ""
#: ../../../docs/configuring-playbook-bridge-rustpush.md:87 #: ../../../docs/configuring-playbook-bridge-rustpush.md:87
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:" 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 "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-rustpush.md:96
msgid "Notable Configuration Options"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-rustpush.md:97
msgid "`matrix_bridge_rustpush_statuskit_notifications` will display StatusKit information for conversation participants. In some clients, this update will cause the DM to be pushed to the top of the conversation list continuously, so this option is disabled by default."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-rustpush.md:98
msgid "`matrix_bridge_rustpush_statuskit_notification_style` can be set to either `topic` or `notice`"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-rustpush.md:99
msgid "`topic` sets the status as a room topic. In supported clients (like Cinny and Sable), this will display `🔕 Focus` as a second line when the person has focus mode enabled."
msgstr ""
#: ../../../docs/configuring-playbook-bridge-rustpush.md:100
msgid "`notice` sends an `m.notice` event to the room which will display text in the room but should not generate a notification"
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -83,11 +83,3 @@ msgstr ""
#: ../../../docs/configuring-playbook-bridge-steam.md:48 #: ../../../docs/configuring-playbook-bridge-steam.md:48
msgid "Send `help` to the bot to see the available commands." msgid "Send `help` to the bot to see the available commands."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-steam.md:50
msgid "Notable Configuration Options"
msgstr ""
#: ../../../docs/configuring-playbook-bridge-steam.md:51
msgid "`matrix_bridge_steam_network_presence_topic_enabled` and `matrix_bridge_steam_network_presence_topic_rich_presence_enabled` mirror Steam's [Enhanced Rich Presence](https://partner.steamgames.com/doc/features/enhancedrichpresence) feature in Matrix. This will display the user's current game and rich presence if supported by the game. This sets the DM room's `m.topic` field to achieve this. Some games (like Deadlock) update the rich presence every minute with a match timer. In some clients, the topic update will cause the DM to be pushed to the top of the conversation list continuously, so this option is disabled by default."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-05-19 07:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -57,7 +57,7 @@ msgid "`roles/custom/matrix-bridge-wechat/defaults/main.yml` for some variables
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-wechat.md:32 #: ../../../docs/configuring-playbook-bridge-wechat.md:32
msgid "`roles/custom/matrix-bridge-wechat/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_bridge_wechat_configuration_extension_yaml` variable" msgid "`roles/custom/matrix-bridge-wechat/templates/config.yaml.j2` for the bridge's default configuration. You can override settings (even those that don't have dedicated playbook variables) using the `matrix_wechat_configuration_extension_yaml` variable"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-bridge-wechat.md:34 #: ../../../docs/configuring-playbook-bridge-wechat.md:34
@@ -1,141 +0,0 @@
# 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-07-12 15:37+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-client-commet.md:7
msgid "Setting up Commet (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:9
msgid "The playbook can install and configure the [Commet](https://github.com/commetchat/commet) Matrix web client for you."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:11
msgid "Adjusting DNS records"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:13
msgid "By default, this playbook installs Commet on the `commet.` subdomain (`commet.example.com`) and requires you to create a CNAME record for `commet`, which targets `matrix.example.com`."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:15
msgid "When setting, replace `example.com` with your own."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:17
msgid "Adjusting the playbook configuration"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:19
msgid "To enable Commet, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:25
msgid "Adjusting the Commet URL (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:27
msgid "By tweaking the `matrix_client_commet_hostname` and `matrix_client_commet_path_prefix` variables, you can easily make the service available at a **different hostname and/or path** than the default one."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:29
msgid "Example additional configuration for your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:40
msgid "After changing the domain, **you may need to adjust your DNS** records to point the Commet domain to the Matrix server."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:42
msgid "If you've decided to reuse the `matrix.` domain, you won't need to do any extra DNS configuration."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:44
msgid "**Note**: `matrix_client_commet_path_prefix` must either be `/` or not end with a slash (e.g. `/commet`)."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:46
msgid "Adjusting the default homeserver (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:48
msgid "Commet is configured with a `default_homeserver` value. By default, the playbook uses `matrix.org`."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:50
msgid "To change it, add the following configuration to your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:56
msgid "Adjusting the Commet version/branch to build (optional)"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:58
msgid "When self-building the container image (`matrix_client_commet_container_image_self_build: true`), the playbook checks out the Commet source repository and builds an image from it."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:60
msgid "To build from a different git branch/tag/SHA, set `matrix_client_commet_version` in your `vars.yml` file:"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:67
msgid "**Note**: by default, the image tag is derived from `matrix_client_commet_version` (`localhost/matrix-client-commet:{{ matrix_client_commet_version }}`). If your branch name contains `/` (e.g. `feature/foo`), override `matrix_client_commet_container_image` (and optionally `matrix_client_commet_container_image_self_build_version_tag`) to a Docker-tag-safe value."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:69
msgid "Extending the configuration"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:71
msgid "There are some additional things you may wish to configure about the component."
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:73
msgid "Take a look at:"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:75
msgid "`roles/custom/matrix-client-commet/defaults/main.yml` for some variables that you can customize via your `vars.yml` file"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:76
msgid "`roles/custom/matrix-client-commet/templates/global_config.json.j2` for the component's default runtime configuration"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:78
msgid "Installing"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:80
msgid "After configuring the playbook and potentially [adjusting your DNS records](#adjusting-dns-records), run the playbook with [playbook tags](playbook-tags.md) as below:"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:87
msgid "The shortcut commands with the [`just` program](just.md) are also available: `just install-all` or `just setup-all`"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:89
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-client-commet.md:91
msgid "Troubleshooting"
msgstr ""
#: ../../../docs/configuring-playbook-client-commet.md:93
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-client-commet`."
msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -81,9 +81,5 @@ msgid "To make it possible to proxy the federation through a CDN such as CloudFl
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook-federation.md:74 #: ../../../docs/configuring-playbook-federation.md:74
msgid "**Note**: `matrix_synapse_federation_port_enabled: false` only makes sense in this specific setup, where federation traffic is served through the client port (because of the `federation` entry in `matrix_synapse_http_listener_resource_names`). If federation still flows through the dedicated federation port on your setup (e.g. another reverse proxy of yours forwarding a custom public port to this playbook's federation port), leave `matrix_synapse_federation_port_enabled` at its default (enabled). Disabling it removes the federation route entirely and breaks such setups."
msgstr ""
#: ../../../docs/configuring-playbook-federation.md:76
msgid "**Use this at you own risk as all the possible side-effects of doing this are not fully known. However, it has been tested and works fine and passes all the tests on <https://federationtester.matrix.org/> without issues.**" msgid "**Use this at you own risk as all the possible side-effects of doing this are not fully known. However, it has been tested and works fine and passes all the tests on <https://federationtester.matrix.org/> without issues.**"
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-07-12 11:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -184,418 +184,410 @@ msgstr ""
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/)" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:98 #: ../../../docs/configuring-playbook.md:99
msgid "[Setting up Commet](configuring-playbook-client-commet.md), if you've enabled [Commet](https://github.com/commetchat/commet), a Matrix web client"
msgstr ""
#: ../../../docs/configuring-playbook.md:101
msgid "Authentication and user-related" msgid "Authentication and user-related"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:103 #: ../../../docs/configuring-playbook.md:101
msgid "Extend and modify how users are authenticated on your homeserver." msgid "Extend and modify how users are authenticated on your homeserver."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:105 #: ../../../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)" msgid "[Setting up Matrix Authentication Service](configuring-playbook-matrix-authentication-service.md) (Next-generation auth for Matrix, based on OAuth 2.0/OIDC)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:107 #: ../../../docs/configuring-playbook.md:105
msgid "[Setting up Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md)" msgid "[Setting up Appservice Double Puppet](configuring-playbook-appservice-double-puppet.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:109 #: ../../../docs/configuring-playbook.md:107
msgid "[Setting up Ketesa](configuring-playbook-ketesa.md)" msgid "[Setting up Ketesa](configuring-playbook-ketesa.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:111 #: ../../../docs/configuring-playbook.md:109
msgid "[Setting up the REST authentication password provider module](configuring-playbook-rest-auth.md) (advanced)" msgid "[Setting up the REST authentication password provider module](configuring-playbook-rest-auth.md) (advanced)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:113 #: ../../../docs/configuring-playbook.md:111
msgid "[Setting up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md) (advanced)" msgid "[Setting up the Shared Secret Auth password provider module](configuring-playbook-shared-secret-auth.md) (advanced)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:115 #: ../../../docs/configuring-playbook.md:113
msgid "[Setting up the LDAP authentication password provider module](configuring-playbook-ldap-auth.md) (advanced)" msgid "[Setting up the LDAP authentication password provider module](configuring-playbook-ldap-auth.md) (advanced)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:117 #: ../../../docs/configuring-playbook.md:115
msgid "[Setting up Synapse Simple Antispam](configuring-playbook-synapse-simple-antispam.md) (advanced)" msgid "[Setting up Synapse Simple Antispam](configuring-playbook-synapse-simple-antispam.md) (advanced)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:119 #: ../../../docs/configuring-playbook.md:117
msgid "[Setting up Matrix User Verification Service](configuring-playbook-user-verification-service.md) (advanced)" msgid "[Setting up Matrix User Verification Service](configuring-playbook-user-verification-service.md) (advanced)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:121 #: ../../../docs/configuring-playbook.md:119
msgid "File Storage" msgid "File Storage"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:123 #: ../../../docs/configuring-playbook.md:121
msgid "Use alternative file storage to the default `media_store` folder." msgid "Use alternative file storage to the default `media_store` folder."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:125 #: ../../../docs/configuring-playbook.md:123
msgid "[Storing Matrix media files using matrix-media-repo](configuring-playbook-matrix-media-repo.md)" msgid "[Storing Matrix media files using matrix-media-repo](configuring-playbook-matrix-media-repo.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:127 #: ../../../docs/configuring-playbook.md:125
msgid "[Storing Synapse media files on Amazon S3 or another compatible Object Storage](configuring-playbook-s3.md)" msgid "[Storing Synapse media files on Amazon S3 or another compatible Object Storage](configuring-playbook-s3.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:129 #: ../../../docs/configuring-playbook.md:127
msgid "[Storing Synapse media files on Amazon S3 with Goofys](configuring-playbook-s3-goofys.md)" msgid "[Storing Synapse media files on Amazon S3 with Goofys](configuring-playbook-s3-goofys.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:131 #: ../../../docs/configuring-playbook.md:129
msgid "[Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md)" msgid "[Storing Synapse media files on Amazon S3 with synapse-s3-storage-provider](configuring-playbook-synapse-s3-storage-provider.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:133 #: ../../../docs/configuring-playbook.md:131
msgid "Bridging other networks" msgid "Bridging other networks"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:135 #: ../../../docs/configuring-playbook.md:133
msgid "Bridges can be used to connect your Matrix installation with third-party communication networks." msgid "Bridges can be used to connect your Matrix installation with third-party communication networks."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:137 #: ../../../docs/configuring-playbook.md:135
msgid "[Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) — a common guide for configuring mautrix bridges" msgid "[Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md) — a common guide for configuring mautrix bridges"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:139 #: ../../../docs/configuring-playbook.md:137
msgid "[Setting up Mautrix Bluesky bridging](configuring-playbook-bridge-mautrix-bluesky.md)" msgid "[Setting up Mautrix Bluesky bridging](configuring-playbook-bridge-mautrix-bluesky.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:141 #: ../../../docs/configuring-playbook.md:139
msgid "[Setting up Mautrix Discord bridging](configuring-playbook-bridge-mautrix-discord.md)" msgid "[Setting up Mautrix Discord bridging](configuring-playbook-bridge-mautrix-discord.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:143 #: ../../../docs/configuring-playbook.md:141
msgid "[Setting up Mautrix Telegram bridging](configuring-playbook-bridge-mautrix-telegram.md)" msgid "[Setting up Mautrix Telegram bridging](configuring-playbook-bridge-mautrix-telegram.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:145 #: ../../../docs/configuring-playbook.md:143
msgid "[Setting up Mautrix Slack bridging](configuring-playbook-bridge-mautrix-slack.md)" msgid "[Setting up Mautrix Slack bridging](configuring-playbook-bridge-mautrix-slack.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:147 #: ../../../docs/configuring-playbook.md:145
msgid "[Setting up Mautrix Google Messages bridging](configuring-playbook-bridge-mautrix-gmessages.md)" msgid "[Setting up Mautrix Google Messages bridging](configuring-playbook-bridge-mautrix-gmessages.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:149 #: ../../../docs/configuring-playbook.md:147
msgid "[Setting up Mautrix Google Voice bridging](configuring-playbook-bridge-mautrix-gvoice.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:151
msgid "[Setting up Mautrix Whatsapp bridging](configuring-playbook-bridge-mautrix-whatsapp.md)" msgid "[Setting up Mautrix Whatsapp bridging](configuring-playbook-bridge-mautrix-whatsapp.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:153 #: ../../../docs/configuring-playbook.md:149
msgid "[Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)" msgid "[Setting up Instagram bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-instagram.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:155 #: ../../../docs/configuring-playbook.md:151
msgid "[Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md)" msgid "[Setting up Messenger bridging via Mautrix Meta](configuring-playbook-bridge-mautrix-meta-messenger.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:157 #: ../../../docs/configuring-playbook.md:153
msgid "[Setting up Mautrix Google Chat bridging](configuring-playbook-bridge-mautrix-googlechat.md)" msgid "[Setting up Mautrix Google Chat bridging](configuring-playbook-bridge-mautrix-googlechat.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:159 #: ../../../docs/configuring-playbook.md:155
msgid "[Setting up Mautrix Twitter bridging](configuring-playbook-bridge-mautrix-twitter.md)" msgid "[Setting up Mautrix Twitter bridging](configuring-playbook-bridge-mautrix-twitter.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:161 #: ../../../docs/configuring-playbook.md:157
msgid "[Setting up Mautrix Signal bridging](configuring-playbook-bridge-mautrix-signal.md)" msgid "[Setting up Mautrix Signal bridging](configuring-playbook-bridge-mautrix-signal.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:163 #: ../../../docs/configuring-playbook.md:159
msgid "[Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](configuring-playbook-bridge-mautrix-wsproxy.md)" msgid "[Setting up Mautrix wsproxy for bridging Android SMS or Apple iMessage](configuring-playbook-bridge-mautrix-wsproxy.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:165 #: ../../../docs/configuring-playbook.md:161
msgid "[Setting up RustPush (iMessage) bridging](configuring-playbook-bridge-rustpush.md)" msgid "[Setting up RustPush (iMessage) bridging](configuring-playbook-bridge-rustpush.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:167 #: ../../../docs/configuring-playbook.md:163
msgid "[Setting up Appservice IRC bridging](configuring-playbook-bridge-appservice-irc.md)" msgid "[Setting up Appservice IRC bridging](configuring-playbook-bridge-appservice-irc.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:169 #: ../../../docs/configuring-playbook.md:165
msgid "[Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md)" msgid "[Setting up Appservice Discord bridging](configuring-playbook-bridge-appservice-discord.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:171 #: ../../../docs/configuring-playbook.md:167
msgid "[Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md)"
msgstr ""
#: ../../../docs/configuring-playbook.md:169
msgid "[Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md)" msgid "[Setting up Beeper LinkedIn bridging](configuring-playbook-bridge-beeper-linkedin.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:173 #: ../../../docs/configuring-playbook.md:171
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)." 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:175 #: ../../../docs/configuring-playbook.md:173
msgid "[Setting up MX Puppet GroupMe bridging](configuring-playbook-bridge-mx-puppet-groupme.md)" msgid "[Setting up MX Puppet GroupMe bridging](configuring-playbook-bridge-mx-puppet-groupme.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:177 #: ../../../docs/configuring-playbook.md:175
msgid "[Setting up Steam bridging](configuring-playbook-bridge-steam.md)" msgid "[Setting up Steam bridging](configuring-playbook-bridge-steam.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:179 #: ../../../docs/configuring-playbook.md:177
msgid "[Setting up MX Puppet Steam bridging](configuring-playbook-bridge-mx-puppet-steam.md)" msgid "[Setting up MX Puppet Steam bridging](configuring-playbook-bridge-mx-puppet-steam.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:181 #: ../../../docs/configuring-playbook.md:179
msgid "[Setting up Postmoogle email bridging](configuring-playbook-bridge-postmoogle.md)" msgid "[Setting up Postmoogle email bridging](configuring-playbook-bridge-postmoogle.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:183 #: ../../../docs/configuring-playbook.md:181
msgid "[Setting up Matrix SMS bridging](configuring-playbook-bridge-matrix-bridge-sms.md)" msgid "[Setting up Matrix SMS bridging](configuring-playbook-bridge-matrix-bridge-sms.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:185 #: ../../../docs/configuring-playbook.md:183
msgid "[Setting up Heisenbridge bouncer-style IRC bridging](configuring-playbook-bridge-heisenbridge.md)" msgid "[Setting up Heisenbridge bouncer-style IRC bridging](configuring-playbook-bridge-heisenbridge.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:187 #: ../../../docs/configuring-playbook.md:185
msgid "[Setting up a Matrix <-> Meshtastic bridge](configuring-playbook-bridge-meshtastic-relay.md)" msgid "[Setting up a Matrix <-> Meshtastic bridge](configuring-playbook-bridge-meshtastic-relay.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:189 #: ../../../docs/configuring-playbook.md:187
msgid "[Setting up WeChat bridging](configuring-playbook-bridge-wechat.md)" msgid "[Setting up WeChat bridging](configuring-playbook-bridge-wechat.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:191 #: ../../../docs/configuring-playbook.md:189
msgid "Bots" msgid "Bots"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:193 #: ../../../docs/configuring-playbook.md:191
msgid "Bots provide various additional functionality to your installation." msgid "Bots provide various additional functionality to your installation."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:195 #: ../../../docs/configuring-playbook.md:193
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 (the privacy-first [Venice](configuring-playbook-bot-baibot.md#venice) we recommend, [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/), and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md))" 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 (the privacy-first [Venice](configuring-playbook-bot-baibot.md#venice) we recommend, [OpenAI](https://openai.com/)'s [ChatGPT](https://openai.com/blog/chatgpt/), and [others](https://github.com/etkecc/baibot/blob/main/docs/providers.md))"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:197 #: ../../../docs/configuring-playbook.md:195
msgid "[Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) — a bot to remind you about stuff" msgid "[Setting up matrix-reminder-bot](configuring-playbook-bot-matrix-reminder-bot.md) — a bot to remind you about stuff"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:199 #: ../../../docs/configuring-playbook.md:197
msgid "[Setting up maubot](configuring-playbook-bot-maubot.md) — a plugin-based Matrix bot system" msgid "[Setting up maubot](configuring-playbook-bot-maubot.md) — a plugin-based Matrix bot system"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:201 #: ../../../docs/configuring-playbook.md:199
msgid "[Setting up Honoroit](configuring-playbook-bot-honoroit.md) — a helpdesk bot" msgid "[Setting up Honoroit](configuring-playbook-bot-honoroit.md) — a helpdesk bot"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:203 #: ../../../docs/configuring-playbook.md:201
msgid "[Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) — a moderation tool/bot" msgid "[Setting up Mjolnir](configuring-playbook-bot-mjolnir.md) — a moderation tool/bot"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:205 #: ../../../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 Draupnir](configuring-playbook-bot-draupnir.md) — a moderation tool/bot, forked from Mjolnir and maintained by its former leader developer"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:207 #: ../../../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 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:209 #: ../../../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 Buscarron](configuring-playbook-bot-buscarron.md) — a bot you can use to send any form (HTTP POST, HTML) to a (encrypted) Matrix room"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:211 #: ../../../docs/configuring-playbook.md:209
msgid "Administration" msgid "Administration"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:213 #: ../../../docs/configuring-playbook.md:211
msgid "Services that help you in administrating and monitoring your Matrix installation." msgid "Services that help you in administrating and monitoring your Matrix installation."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:215 #: ../../../docs/configuring-playbook.md:213
msgid "[Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)" msgid "[Setting up Prometheus Alertmanager integration via matrix-alertmanager-receiver](configuring-playbook-alertmanager-receiver.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:217 #: ../../../docs/configuring-playbook.md:215
msgid "[Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)" msgid "[Enabling metrics and graphs (Prometheus, Grafana) for your Matrix server](configuring-playbook-prometheus-grafana.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:219 #: ../../../docs/configuring-playbook.md:217
msgid "[Setting up the rageshake bug report server](configuring-playbook-rageshake.md)" msgid "[Setting up the rageshake bug report server](configuring-playbook-rageshake.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:221 #: ../../../docs/configuring-playbook.md:219
msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)" msgid "[Enabling synapse-usage-exporter for Synapse usage statistics](configuring-playbook-synapse-usage-exporter.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:223 #: ../../../docs/configuring-playbook.md:221
msgid "Backups:" msgid "Backups:"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:224 #: ../../../docs/configuring-playbook.md:222
msgid "[Setting up BorgBackup](configuring-playbook-backup-borg.md) — a full Matrix server backup solution, including the Postgres database" msgid "[Setting up BorgBackup](configuring-playbook-backup-borg.md) — a full Matrix server backup solution, including the Postgres database"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:226 #: ../../../docs/configuring-playbook.md:224
msgid "[Setting up Postgres backup](configuring-playbook-postgres-backup.md) — a Postgres-database backup solution (note: does not include other files)" msgid "[Setting up Postgres backup](configuring-playbook-postgres-backup.md) — a Postgres-database backup solution (note: does not include other files)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:228 #: ../../../docs/configuring-playbook.md:226
msgid "Other specialized services" msgid "Other specialized services"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:230 #: ../../../docs/configuring-playbook.md:228
msgid "Various services that don't fit any other categories." msgid "Various services that don't fit any other categories."
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:232 #: ../../../docs/configuring-playbook.md:230
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)" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:234 #: ../../../docs/configuring-playbook.md:232
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)" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:236 #: ../../../docs/configuring-playbook.md:234
msgid "[Setting up LiveKit Server](configuring-playbook-livekit-server.md) - a component of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) (optional)" msgid "[Setting up LiveKit Server](configuring-playbook-livekit-server.md) - a component of the [Matrix RTC stack](configuring-playbook-matrix-rtc.md) (optional)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:238 #: ../../../docs/configuring-playbook.md:236
msgid "[Setting up Matrix RTC](configuring-playbook-matrix-rtc.md) (optional)" msgid "[Setting up Matrix RTC](configuring-playbook-matrix-rtc.md) (optional)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:240 #: ../../../docs/configuring-playbook.md:238
msgid "[Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md) for compressing the database on Synapse homeservers" msgid "[Setting up synapse-auto-compressor](configuring-playbook-synapse-auto-compressor.md) for compressing the database on Synapse homeservers"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:242 #: ../../../docs/configuring-playbook.md:240
msgid "[Setting up Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)" msgid "[Setting up Matrix Corporal](configuring-playbook-matrix-corporal.md) (advanced)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:244 #: ../../../docs/configuring-playbook.md:242
msgid "[Setting up Matrix.to](configuring-playbook-matrixto.md)" msgid "[Setting up Matrix.to](configuring-playbook-matrixto.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:246 #: ../../../docs/configuring-playbook.md:244
msgid "[Setting up Etherpad](configuring-playbook-etherpad.md)" msgid "[Setting up Etherpad](configuring-playbook-etherpad.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:248 #: ../../../docs/configuring-playbook.md:246
msgid "[Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md)" msgid "[Setting up the Jitsi video-conferencing platform](configuring-playbook-jitsi.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:250 #: ../../../docs/configuring-playbook.md:248
msgid "[Setting up Cactus Comments](configuring-playbook-cactus-comments.md) — a federated comment system built on Matrix" msgid "[Setting up Cactus Comments](configuring-playbook-cactus-comments.md) — a federated comment system built on Matrix"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:252 #: ../../../docs/configuring-playbook.md:250
msgid "[Setting up Pantalaimon (E2EE aware proxy daemon)](configuring-playbook-pantalaimon.md) (advanced)" msgid "[Setting up Pantalaimon (E2EE aware proxy daemon)](configuring-playbook-pantalaimon.md) (advanced)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:254 #: ../../../docs/configuring-playbook.md:252
msgid "[Setting up the Sygnal push gateway](configuring-playbook-sygnal.md)" msgid "[Setting up the Sygnal push gateway](configuring-playbook-sygnal.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:256 #: ../../../docs/configuring-playbook.md:254
msgid "[Setting up the ntfy push notifications server](configuring-playbook-ntfy.md)" msgid "[Setting up the ntfy push notifications server](configuring-playbook-ntfy.md)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:258 #: ../../../docs/configuring-playbook.md:256
msgid "Deprecated / unmaintained / removed services" msgid "Deprecated / unmaintained / removed services"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:260 #: ../../../docs/configuring-playbook.md:258
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." 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:262 #: ../../../docs/configuring-playbook.md:260
msgid "[Configuring conduwuit](configuring-playbook-conduwuit.md) (removed; this component has been abandoned and unmaintained)" msgid "[Configuring conduwuit](configuring-playbook-conduwuit.md) (removed; this component has been abandoned and unmaintained)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:264 #: ../../../docs/configuring-playbook.md:262
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)" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:266 #: ../../../docs/configuring-playbook.md:264
msgid "[Setting up Appservice Kakaotalk bridging](configuring-playbook-bridge-appservice-kakaotalk.md) (removed; the upstream repository has become unreachable and the component could only be installed by self-building it)"
msgstr ""
#: ../../../docs/configuring-playbook.md:268
msgid "[Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md) (removed; this component has been discontinued)" msgid "[Setting up Appservice Slack bridging](configuring-playbook-bridge-appservice-slack.md) (removed; this component has been discontinued)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:270 #: ../../../docs/configuring-playbook.md:266
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:272 #: ../../../docs/configuring-playbook.md:268
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:274 #: ../../../docs/configuring-playbook.md:270
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:276 #: ../../../docs/configuring-playbook.md:272
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:278 #: ../../../docs/configuring-playbook.md:274
msgid "[Setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md) (removed; Skype has been discontinued since May 2025)" msgid "[Setting up Go Skype Bridge bridging](configuring-playbook-bridge-go-skype-bridge.md) (removed; Skype has been discontinued since May 2025)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:280 #: ../../../docs/configuring-playbook.md:276
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.)" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:282 #: ../../../docs/configuring-playbook.md:278
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:284 #: ../../../docs/configuring-playbook.md:280
msgid "[Setting up matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md) (removed; the repository of the source code has been removed)" msgid "[Setting up matrix-ldap-registration-proxy](configuring-playbook-matrix-ldap-registration-proxy.md) (removed; the repository of the source code has been removed)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:286 #: ../../../docs/configuring-playbook.md:282
msgid "[Setting up matrix-registration](configuring-playbook-matrix-registration.md) (removed; this component has been unmaintained)" msgid "[Setting up matrix-registration](configuring-playbook-matrix-registration.md) (removed; this component has been unmaintained)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:288 #: ../../../docs/configuring-playbook.md:284
msgid "[Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) (removed; this component has been unmaintained)" msgid "[Setting up matrix-registration-bot](configuring-playbook-bot-matrix-registration-bot.md) (removed; this component has been unmaintained)"
msgstr "" msgstr ""
#: ../../../docs/configuring-playbook.md:290 #: ../../../docs/configuring-playbook.md:286
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:292 #: ../../../docs/configuring-playbook.md:288
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:294 #: ../../../docs/configuring-playbook.md:290
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:296 #: ../../../docs/configuring-playbook.md:292
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:298 #: ../../../docs/configuring-playbook.md:294
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:300 #: ../../../docs/configuring-playbook.md:296
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:302 #: ../../../docs/configuring-playbook.md:298
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))" 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 "" msgstr ""
#: ../../../docs/configuring-playbook.md:304 #: ../../../docs/configuring-playbook.md:300
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.)" 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 "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -181,81 +181,73 @@ msgid "On the base domain's server (e.g. `example.com`), you can set up reverse-
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:115 #: ../../../docs/configuring-well-known.md:115
msgid "With reverse-proxying, you **don't need** to add special HTTP headers for [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) reasons (like `Access-Control-Allow-Origin`), because your Matrix server (where requests ultimately go) will be configured by this playbook correctly." msgid "With this method, you **don't need** to add special HTTP headers for [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) reasons (like `Access-Control-Allow-Origin`), because your Matrix server (where requests ultimately go) will be configured by this playbook correctly."
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:117 #: ../../../docs/configuring-well-known.md:117
msgid "If you use a 302 redirect instead, be aware that browsers apply CORS checks to every response in the redirect chain, so the redirect response itself must also carry an `Access-Control-Allow-Origin: *` header. Otherwise, web-based Matrix clients (like Element Web) may fail to work even though the final destination sets the header correctly."
msgstr ""
#: ../../../docs/configuring-well-known.md:119
msgid "**For nginx**, it would be something like this:" msgid "**For nginx**, it would be something like this:"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:136 #: ../../../docs/configuring-well-known.md:134
msgid "**For Apache2**, it would be something like this:" msgid "**For Apache2**, it would be something like this:"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:150 #: ../../../docs/configuring-well-known.md:148
msgid "**For Caddy 2**, it would be something like this:" msgid "**For Caddy 2**, it would be something like this:"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:160 #: ../../../docs/configuring-well-known.md:158
msgid "**Note**: Caddy does not process directives in the order they appear in the Caddyfile, but according to its own [directive order](https://caddyserver.com/docs/caddyfile/directives#directive-order). Notably, `redir` is evaluated before `reverse_proxy`, so a `redir` elsewhere in the same site block (a common way to send the base domain to `www.example.com` or to another site) takes precedence and breaks the well-known reverse-proxying. In such cases, wrap the directives in [`handle`](https://caddyserver.com/docs/caddyfile/directives/handle) blocks to enforce the intended priority:"
msgstr ""
#: ../../../docs/configuring-well-known.md:177
msgid "**For HAProxy**, it would be something like this:" msgid "**For HAProxy**, it would be something like this:"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:196 #: ../../../docs/configuring-well-known.md:177
msgid "**For Netlify**, configure a [redirect](https://docs.netlify.com/routing/redirects/) using a `_redirects` file in the [publish directory](https://docs.netlify.com/configure-builds/overview/#definitions) with contents like this:" msgid "**For Netlify**, configure a [redirect](https://docs.netlify.com/routing/redirects/) using a `_redirects` file in the [publish directory](https://docs.netlify.com/configure-builds/overview/#definitions) with contents like this:"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:202 #: ../../../docs/configuring-well-known.md:183
msgid "**For AWS CloudFront**" msgid "**For AWS CloudFront**"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:204 #: ../../../docs/configuring-well-known.md:185
msgid "Add a custom origin with matrix.example.com to your distribution" msgid "Add a custom origin with matrix.example.com to your distribution"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:205 #: ../../../docs/configuring-well-known.md:186
msgid "Add two behaviors, one for `.well-known/matrix/client` and one for `.well-known/matrix/server` and point them to your new origin." msgid "Add two behaviors, one for `.well-known/matrix/client` and one for `.well-known/matrix/server` and point them to your new origin."
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:207 #: ../../../docs/configuring-well-known.md:188
msgid "Make sure to:" msgid "Make sure to:"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:209 #: ../../../docs/configuring-well-known.md:190
msgid "**replace `example.com`** in the server configuration with your actual domain name" msgid "**replace `example.com`** in the server configuration with your actual domain name"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:210 #: ../../../docs/configuring-well-known.md:191
msgid "and: to **do this for the HTTPS-enabled server block**, as that's where Matrix expects the file to be" msgid "and: to **do this for the HTTPS-enabled server block**, as that's where Matrix expects the file to be"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:212 #: ../../../docs/configuring-well-known.md:193
msgid "Confirming it works" msgid "Confirming it works"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:214 #: ../../../docs/configuring-well-known.md:195
msgid "No matter which method you've used to set up the well-known files, if you've done it correctly you should be able to see a JSON file at these URLs:" msgid "No matter which method you've used to set up the well-known files, if you've done it correctly you should be able to see a JSON file at these URLs:"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:216 #: ../../../docs/configuring-well-known.md:197
msgid "`https://example.com/.well-known/matrix/server`" msgid "`https://example.com/.well-known/matrix/server`"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:217 #: ../../../docs/configuring-well-known.md:198
msgid "`https://example.com/.well-known/matrix/client`" msgid "`https://example.com/.well-known/matrix/client`"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:218 #: ../../../docs/configuring-well-known.md:199
msgid "`https://example.com/.well-known/matrix/support`" msgid "`https://example.com/.well-known/matrix/support`"
msgstr "" msgstr ""
#: ../../../docs/configuring-well-known.md:220 #: ../../../docs/configuring-well-known.md:201
msgid "You can also check if everything is configured correctly, by [checking if services work](maintenance-and-troubleshooting.md#how-to-check-if-services-work)." msgid "You can also check if everything is configured correctly, by [checking if services work](maintenance-and-troubleshooting.md#how-to-check-if-services-work)."
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-07-12 11:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -444,18 +444,6 @@ msgstr ""
msgid "Bridge to [Google Messages](https://messages.google.com/)" msgid "Bridge to [Google Messages](https://messages.google.com/)"
msgstr "" msgstr ""
#: ../../../docs/container-images.md:0
msgid "[mautrix-gvoice](configuring-playbook-bridge-mautrix-gvoice.md)"
msgstr ""
#: ../../../docs/container-images.md:0
msgid "[mautrix/gvoice](https://mau.dev/mautrix/gvoice/container_registry)"
msgstr ""
#: ../../../docs/container-images.md:0
msgid "Bridge to [Google Voice](https://voice.google.com/)"
msgstr ""
#: ../../../docs/container-images.md:0 #: ../../../docs/container-images.md:0
msgid "[mautrix-whatsapp](configuring-playbook-bridge-mautrix-whatsapp.md)" msgid "[mautrix-whatsapp](configuring-playbook-bridge-mautrix-whatsapp.md)"
msgstr "" msgstr ""
@@ -552,6 +540,18 @@ msgstr ""
msgid "Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)" msgid "Bridge to [IRC](https://wikipedia.org/wiki/Internet_Relay_Chat)"
msgstr "" msgstr ""
#: ../../../docs/container-images.md:0
msgid "[matrix-appservice-kakaotalk](configuring-playbook-bridge-appservice-kakaotalk.md)"
msgstr ""
#: ../../../docs/container-images.md:0
msgid "Self-building"
msgstr ""
#: ../../../docs/container-images.md:0
msgid "Bridge to [Kakaotalk](https://www.kakaocorp.com/page/service/service/KakaoTalk?lang=ENG)"
msgstr ""
#: ../../../docs/container-images.md:0 #: ../../../docs/container-images.md:0
msgid "[matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)" msgid "[matrix-appservice-discord](configuring-playbook-bridge-appservice-discord.md)"
msgstr "" msgstr ""
@@ -884,10 +884,6 @@ msgstr ""
msgid "[synapse-usage-exporter](configuring-playbook-synapse-usage-exporter.md)" msgid "[synapse-usage-exporter](configuring-playbook-synapse-usage-exporter.md)"
msgstr "" msgstr ""
#: ../../../docs/container-images.md:0
msgid "Self-building"
msgstr ""
#: ../../../docs/container-images.md:0 #: ../../../docs/container-images.md:0
msgid "Export the usage statistics of a Synapse homeserver to be scraped by Prometheus." msgid "Export the usage statistics of a Synapse homeserver to be scraped by Prometheus."
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -25,7 +25,7 @@ msgid "You can manually import your database from a previous default installatio
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:14 #: ../../../docs/importing-postgres.md:14
#: ../../../docs/importing-postgres.md:43 #: ../../../docs/importing-postgres.md:38
msgid "**Notes**:" msgid "**Notes**:"
msgstr "" msgstr ""
@@ -57,106 +57,98 @@ msgstr ""
msgid "Before doing the actual import, **you need to upload your Postgres dump file to the server** (any path is okay)." msgid "Before doing the actual import, **you need to upload your Postgres dump file to the server** (any path is okay)."
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:29 #: ../../../docs/importing-postgres.md:28
msgid "Do not import into a database that already contains tables (e.g. one that a service has already initialized and used). As the [official Synapse backup guide](https://element-hq.github.io/synapse/latest/usage/administration/backups.html) puts it: at best this will error, at worst it will lead to subtle database inconsistencies. Import into an empty (freshly created) database instead."
msgstr ""
#: ../../../docs/importing-postgres.md:31
msgid "**Note for Synapse users restoring an older backup**: if the server kept running (and users kept chatting) after the backup you are restoring was made, truncate the `e2e_one_time_keys_json` table after importing and before starting Synapse. Restoring an older backup can otherwise cause already-used one-time keys to be re-issued, leading to message decryption errors for your users. You can do this by [getting a database terminal](maintenance-postgres.md#getting-a-database-terminal), connecting to the Synapse database (`\\c synapse`) and running `TRUNCATE e2e_one_time_keys_json;`. Clients will generate and upload fresh one-time keys automatically."
msgstr ""
#: ../../../docs/importing-postgres.md:33
msgid "Importing" msgid "Importing"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:35 #: ../../../docs/importing-postgres.md:30
msgid "To import, run this command (make sure to replace `SERVER_PATH_TO_POSTGRES_DUMP_FILE` with a file path on your server):" msgid "To import, run this command (make sure to replace `SERVER_PATH_TO_POSTGRES_DUMP_FILE` with a file path on your server):"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:45 #: ../../../docs/importing-postgres.md:40
msgid "`SERVER_PATH_TO_POSTGRES_DUMP_FILE` must be a file path to a Postgres dump file on the server (not on your local machine!)" msgid "`SERVER_PATH_TO_POSTGRES_DUMP_FILE` must be a file path to a Postgres dump file on the server (not on your local machine!)"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:46 #: ../../../docs/importing-postgres.md:41
msgid "`postgres_default_import_database` defaults to `matrix`, which is useful for importing multiple databases (for dumps made with `pg_dumpall`). If you're importing a single database (e.g. `synapse`), consider changing `postgres_default_import_database` accordingly" msgid "`postgres_default_import_database` defaults to `matrix`, which is useful for importing multiple databases (for dumps made with `pg_dumpall`). If you're importing a single database (e.g. `synapse`), consider changing `postgres_default_import_database` accordingly"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:47 #: ../../../docs/importing-postgres.md:42
msgid "after importing a large database, it's a good idea to run [an `ANALYZE` operation](https://www.postgresql.org/docs/current/sql-analyze.html) to make Postgres rebuild its database statistics and optimize its query planner. You can easily do this via the playbook by running `just run-tags run-postgres-vacuum -e postgres_vacuum_preset=analyze` (see [Vacuuming PostgreSQL](maintenance-postgres.md#vacuuming-postgresql) for more details)." msgid "after importing a large database, it's a good idea to run [an `ANALYZE` operation](https://www.postgresql.org/docs/current/sql-analyze.html) to make Postgres rebuild its database statistics and optimize its query planner. You can easily do this via the playbook by running `just run-tags run-postgres-vacuum -e postgres_vacuum_preset=analyze` (see [Vacuuming PostgreSQL](maintenance-postgres.md#vacuuming-postgresql) for more details)."
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:49 #: ../../../docs/importing-postgres.md:44
msgid "Troubleshooting" msgid "Troubleshooting"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:51 #: ../../../docs/importing-postgres.md:46
msgid "Table Ownership" msgid "Table Ownership"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:53 #: ../../../docs/importing-postgres.md:48
msgid "A table ownership issue can occur if you are importing from a Synapse installation which was both:" msgid "A table ownership issue can occur if you are importing from a Synapse installation which was both:"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:55 #: ../../../docs/importing-postgres.md:50
msgid "migrated from SQLite to Postgres, and" msgid "migrated from SQLite to Postgres, and"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:56 #: ../../../docs/importing-postgres.md:51
msgid "used a username other than 'synapse'" msgid "used a username other than 'synapse'"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:58 #: ../../../docs/importing-postgres.md:53
msgid "In this case you may run into the following error during the import task:" msgid "In this case you may run into the following error during the import task:"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:64 #: ../../../docs/importing-postgres.md:59
msgid "where `synapse_user` is the database username from the previous Synapse installation." msgid "where `synapse_user` is the database username from the previous Synapse installation."
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:66 #: ../../../docs/importing-postgres.md:61
msgid "This can be verified by examining the dump for ALTER TABLE statements which set OWNER TO that username:" msgid "This can be verified by examining the dump for ALTER TABLE statements which set OWNER TO that username:"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:78 #: ../../../docs/importing-postgres.md:73
msgid "It can be worked around by changing the username to `synapse`, for example by using `sed`:" msgid "It can be worked around by changing the username to `synapse`, for example by using `sed`:"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:84 #: ../../../docs/importing-postgres.md:79
msgid "This uses sed to perform an 'in-place' (`-i`) replacement globally (`/g`), searching for `synapse_user` and replacing with `synapse` (`s/synapse_user/synapse`). If your database username was different, change `synapse_user` to that username instead. Expand search/replace statement as shown in example above, in case of old user name like `matrix` — replacing `matrix` only would… well — you can imagine." msgid "This uses sed to perform an 'in-place' (`-i`) replacement globally (`/g`), searching for `synapse_user` and replacing with `synapse` (`s/synapse_user/synapse`). If your database username was different, change `synapse_user` to that username instead. Expand search/replace statement as shown in example above, in case of old user name like `matrix` — replacing `matrix` only would… well — you can imagine."
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:86 #: ../../../docs/importing-postgres.md:81
msgid "Note that if the previous import failed with an error it may have made changes which are incompatible with re-running the import task right away; if you do so it may fail with an error such as:" msgid "Note that if the previous import failed with an error it may have made changes which are incompatible with re-running the import task right away; if you do so it may fail with an error such as:"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:92 #: ../../../docs/importing-postgres.md:87
msgid "Repeat import" msgid "Repeat import"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:94 #: ../../../docs/importing-postgres.md:89
msgid "In this case you can use the command suggested in the import task to clear the database before retrying the import:" msgid "In this case you can use the command suggested in the import task to clear the database before retrying the import:"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:102 #: ../../../docs/importing-postgres.md:97
msgid "Now on your local machine run `just run-tags setup-postgres` to prepare the database roles etc." msgid "Now on your local machine run `just run-tags setup-postgres` to prepare the database roles etc."
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:104 #: ../../../docs/importing-postgres.md:99
msgid "If not, you probably get this error. `synapse` is the correct table owner, but the role is missing in database." msgid "If not, you probably get this error. `synapse` is the correct table owner, but the role is missing in database."
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:110 #: ../../../docs/importing-postgres.md:105
msgid "Once the database is clear and the ownership of the tables has been fixed in the SQL file, the import task should succeed." msgid "Once the database is clear and the ownership of the tables has been fixed in the SQL file, the import task should succeed."
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:112 #: ../../../docs/importing-postgres.md:107
msgid "Check, if `--dbname` is set to `synapse` (not `matrix`) and replace paths (or even better, copy this line from your terminal)" msgid "Check, if `--dbname` is set to `synapse` (not `matrix`) and replace paths (or even better, copy this line from your terminal)"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:118 #: ../../../docs/importing-postgres.md:113
msgid "Hints" msgid "Hints"
msgstr "" msgstr ""
#: ../../../docs/importing-postgres.md:120 #: ../../../docs/importing-postgres.md:115
msgid "To open psql terminal run `/matrix/postgres/bin/cli`" msgid "To open psql terminal run `/matrix/postgres/bin/cli`"
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-02-13 10:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -33,29 +33,25 @@ msgid "Before doing the actual data restore, **you need to upload your media sto
msgstr "" msgstr ""
#: ../../../docs/importing-synapse-media-store.md:16 #: ../../../docs/importing-synapse-media-store.md:16
msgid "You also need the [rsync](https://rsync.samba.org/) utility installed **on the server**, as the import performs a server-side `rsync` synchronization. The playbook does not install it for you. On most distributions, it is available as a package called `rsync`."
msgstr ""
#: ../../../docs/importing-synapse-media-store.md:18
msgid "If you are [storing Matrix media files on Amazon S3](configuring-playbook-s3.md) (optional), restoring with this tool is not possible right now." msgid "If you are [storing Matrix media files on Amazon S3](configuring-playbook-s3.md) (optional), restoring with this tool is not possible right now."
msgstr "" msgstr ""
#: ../../../docs/importing-synapse-media-store.md:20 #: ../../../docs/importing-synapse-media-store.md:18
msgid "As an alternative, you can perform a manual restore using the [AWS CLI tool](https://aws.amazon.com/cli/) (e.g. `aws s3 sync /path/to/server/media_store/. s3://name-of-bucket/`)" msgid "As an alternative, you can perform a manual restore using the [AWS CLI tool](https://aws.amazon.com/cli/) (e.g. `aws s3 sync /path/to/server/media_store/. s3://name-of-bucket/`)"
msgstr "" msgstr ""
#: ../../../docs/importing-synapse-media-store.md:22 #: ../../../docs/importing-synapse-media-store.md:20
msgid "**Note for Mac users**: Due to case-sensitivity issues on certain Mac filesystems (HFS or HFS+), filename corruption may occur if you copy a `media_store` directory to your Mac. If you're transferring a `media_store` directory between 2 servers, make sure you do it directly (from server to server with a tool such as [rsync](https://rsync.samba.org/)), and not by downloading the files to your Mac." msgid "**Note for Mac users**: Due to case-sensitivity issues on certain Mac filesystems (HFS or HFS+), filename corruption may occur if you copy a `media_store` directory to your Mac. If you're transferring a `media_store` directory between 2 servers, make sure you do it directly (from server to server with a tool such as [rsync](https://rsync.samba.org/)), and not by downloading the files to your Mac."
msgstr "" msgstr ""
#: ../../../docs/importing-synapse-media-store.md:24 #: ../../../docs/importing-synapse-media-store.md:22
msgid "Importing" msgid "Importing"
msgstr "" msgstr ""
#: ../../../docs/importing-synapse-media-store.md:26 #: ../../../docs/importing-synapse-media-store.md:24
msgid "Run this command (make sure to replace `<server-path-to-media_store>` with a path on your server):" msgid "Run this command (make sure to replace `<server-path-to-media_store>` with a path on your server):"
msgstr "" msgstr ""
#: ../../../docs/importing-synapse-media-store.md:32 #: ../../../docs/importing-synapse-media-store.md:30
msgid "**Note**: `<server-path-to-media_store>` must be a file path to a `media_store` directory on the server (not on your local machine!)." msgid "**Note**: `<server-path-to-media_store>` must be a file path to a `media_store` directory on the server (not on your local machine!)."
msgstr "" msgstr ""
+61 -65
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-12 15:37+0000\n" "POT-Creation-Date: 2026-06-29 17:50+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -77,249 +77,245 @@ msgid "If you **do** use SSH keys for authentication, **and** use a non-root use
msgstr "" msgstr ""
#: ../../../docs/installing.md:44 #: ../../../docs/installing.md:44
msgid "Instead of typing the sudo password on each run (`-K`) or storing it in plain text in the inventory hosts file, you can also pull it from the [pass](https://www.passwordstore.org/) password manager by adding `ansible_become_password='{{ lookup(\"community.general.passwordstore\", \"path/to/password\") }}'` to your host line. See the [passwordstore lookup documentation](https://docs.ansible.com/ansible/latest/collections/community/general/passwordstore_lookup.html) for more details."
msgstr ""
#: ../../../docs/installing.md:46
msgid "There 2 ways to start the installation process — depending on whether you're [Installing a brand new server (without importing data)](#installing-a-brand-new-server-without-importing-data) or [Installing a server into which you'll import old data](#installing-a-server-into-which-youll-import-old-data)." msgid "There 2 ways to start the installation process — depending on whether you're [Installing a brand new server (without importing data)](#installing-a-brand-new-server-without-importing-data) or [Installing a server into which you'll import old data](#installing-a-server-into-which-youll-import-old-data)."
msgstr "" msgstr ""
#: ../../../docs/installing.md:48 #: ../../../docs/installing.md:46
msgid "**Note**: if you are migrating from an old server to a new one, take a look at [this guide](maintenance-migrating.md) instead. This is an easier and more straightforward way than installing a server and importing old data into it." msgid "**Note**: if you are migrating from an old server to a new one, take a look at [this guide](maintenance-migrating.md) instead. This is an easier and more straightforward way than installing a server and importing old data into it."
msgstr "" msgstr ""
#: ../../../docs/installing.md:50 #: ../../../docs/installing.md:48
msgid "Installing a brand new server (without importing data)" msgid "Installing a brand new server (without importing data)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:52 #: ../../../docs/installing.md:50
msgid "If this is **a brand new** Matrix server and you **won't be importing old data into it**, run all these tags:" msgid "If this is **a brand new** Matrix server and you **won't be importing old data into it**, run all these tags:"
msgstr "" msgstr ""
#: ../../../docs/installing.md:58 #: ../../../docs/installing.md:56
msgid "This will do a full installation and start all Matrix services." msgid "This will do a full installation and start all Matrix services."
msgstr "" msgstr ""
#: ../../../docs/installing.md:60 #: ../../../docs/installing.md:58
msgid "**Note**: if the command does not work as expected, make sure that you have properly installed and configured software required to run the playbook, as described on [Prerequisites](prerequisites.md)." msgid "**Note**: if the command does not work as expected, make sure that you have properly installed and configured software required to run the playbook, as described on [Prerequisites](prerequisites.md)."
msgstr "" msgstr ""
#: ../../../docs/installing.md:62 #: ../../../docs/installing.md:60
msgid "Installing a server into which you'll import old data" msgid "Installing a server into which you'll import old data"
msgstr "" msgstr ""
#: ../../../docs/installing.md:64 #: ../../../docs/installing.md:62
msgid "If you will be importing data into your newly created Matrix server, install it, but **do not** start its services just yet. Starting its services or messing with its database now will affect your data import later on." msgid "If you will be importing data into your newly created Matrix server, install it, but **do not** start its services just yet. Starting its services or messing with its database now will affect your data import later on."
msgstr "" msgstr ""
#: ../../../docs/installing.md:66 #: ../../../docs/installing.md:64
msgid "To do the installation **without** starting services, run `ansible-playbook` with the `install-all` tag only:" msgid "To do the installation **without** starting services, run `ansible-playbook` with the `install-all` tag only:"
msgstr "" msgstr ""
#: ../../../docs/installing.md:73 #: ../../../docs/installing.md:71
msgid "Do not run the just \"recipe\" `just install-all` instead, because it automatically starts services at the end of execution. See: [Difference between playbook tags and shortcuts](just.md#difference-between-playbook-tags-and-shortcuts)" msgid "Do not run the just \"recipe\" `just install-all` instead, because it automatically starts services at the end of execution. See: [Difference between playbook tags and shortcuts](just.md#difference-between-playbook-tags-and-shortcuts)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:75 #: ../../../docs/installing.md:73
msgid "When this command completes, services won't be running yet." msgid "When this command completes, services won't be running yet."
msgstr "" msgstr ""
#: ../../../docs/installing.md:77 #: ../../../docs/installing.md:75
msgid "You can now:" msgid "You can now:"
msgstr "" msgstr ""
#: ../../../docs/installing.md:79 #: ../../../docs/installing.md:77
msgid "[Importing an existing SQLite database (from another Synapse installation)](importing-synapse-sqlite.md) (optional)" msgid "[Importing an existing SQLite database (from another Synapse installation)](importing-synapse-sqlite.md) (optional)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:81 #: ../../../docs/installing.md:79
msgid "[Importing an existing Postgres database (from another installation)](importing-postgres.md) (optional)" msgid "[Importing an existing Postgres database (from another installation)](importing-postgres.md) (optional)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:83 #: ../../../docs/installing.md:81
msgid "[Importing `media_store` data files from an existing Synapse installation](importing-synapse-media-store.md) (optional)" msgid "[Importing `media_store` data files from an existing Synapse installation](importing-synapse-media-store.md) (optional)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:85 #: ../../../docs/installing.md:83
msgid "… and then proceed to starting all services:" msgid "… and then proceed to starting all services:"
msgstr "" msgstr ""
#: ../../../docs/installing.md:91 #: ../../../docs/installing.md:89
msgid "Create your user account" msgid "Create your user account"
msgstr "" msgstr ""
#: ../../../docs/installing.md:93 #: ../../../docs/installing.md:91
msgid "️ *You can skip this step if you have installed a server and imported old data to it.*" msgid "️ *You can skip this step if you have installed a server and imported old data to it.*"
msgstr "" msgstr ""
#: ../../../docs/installing.md:95 #: ../../../docs/installing.md:93
msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server." msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server."
msgstr "" msgstr ""
#: ../../../docs/installing.md:97 #: ../../../docs/installing.md:95
msgid "After creating the user account, you can log in to it with [Element Web](configuring-playbook-client-element-web.md) that this playbook has installed for you at this URL: `https://element.example.com/`." msgid "After creating the user account, you can log in to it with [Element Web](configuring-playbook-client-element-web.md) that this playbook has installed for you at this URL: `https://element.example.com/`."
msgstr "" msgstr ""
#: ../../../docs/installing.md:99 #: ../../../docs/installing.md:97
msgid "To create your user account (as an administrator of the server) via this Ansible playbook, run the command below on your local computer." msgid "To create your user account (as an administrator of the server) via this Ansible playbook, run the command below on your local computer."
msgstr "" msgstr ""
#: ../../../docs/installing.md:101 #: ../../../docs/installing.md:99
msgid "**Notes**:" msgid "**Notes**:"
msgstr "" msgstr ""
#: ../../../docs/installing.md:102 #: ../../../docs/installing.md:100
msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`" msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`"
msgstr "" msgstr ""
#: ../../../docs/installing.md:103 #: ../../../docs/installing.md:101
msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)" msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:104 #: ../../../docs/installing.md:102
msgid "Use `admin=yes` to make your user account an administrator of the Matrix server" msgid "Use `admin=yes` to make your user account an administrator of the Matrix server"
msgstr "" msgstr ""
#: ../../../docs/installing.md:112 #: ../../../docs/installing.md:110
msgid "Feel free to create as many accounts (for friends, family, etc.) as you want. Still, perhaps you should grant full administrative access to your account only (with `admin=yes`), and others should be created with `admin=no`." msgid "Feel free to create as many accounts (for friends, family, etc.) as you want. Still, perhaps you should grant full administrative access to your account only (with `admin=yes`), and others should be created with `admin=no`."
msgstr "" msgstr ""
#: ../../../docs/installing.md:114 #: ../../../docs/installing.md:112
msgid "For more information, see the documentation for [registering users](registering-users.md)." msgid "For more information, see the documentation for [registering users](registering-users.md)."
msgstr "" msgstr ""
#: ../../../docs/installing.md:116 #: ../../../docs/installing.md:114
msgid "Finalize the installation" msgid "Finalize the installation"
msgstr "" msgstr ""
#: ../../../docs/installing.md:118 #: ../../../docs/installing.md:116
msgid "Now you've configured Matrix services and your user account, you need to **finalize the installation process** by [setting up Matrix delegation (redirection)](howto-server-delegation.md), so that your Matrix server (`matrix.example.com`) can present itself as the base domain (`example.com`) in the Matrix network." msgid "Now you've configured Matrix services and your user account, you need to **finalize the installation process** by [setting up Matrix delegation (redirection)](howto-server-delegation.md), so that your Matrix server (`matrix.example.com`) can present itself as the base domain (`example.com`) in the Matrix network."
msgstr "" msgstr ""
#: ../../../docs/installing.md:120 #: ../../../docs/installing.md:118
msgid "This is required for federation to work! Without a proper configuration, your server will effectively not be part of the Matrix network." msgid "This is required for federation to work! Without a proper configuration, your server will effectively not be part of the Matrix network."
msgstr "" msgstr ""
#: ../../../docs/installing.md:122 #: ../../../docs/installing.md:120
msgid "To configure the delegation, you have these two options. Choose one of them according to your situation." msgid "To configure the delegation, you have these two options. Choose one of them according to your situation."
msgstr "" msgstr ""
#: ../../../docs/installing.md:124 #: ../../../docs/installing.md:122
msgid "If you can afford to point the base domain at the Matrix server, follow the instructions below which guide you into [serving the base domain](configuring-playbook-base-domain-serving.md) from the integrated web server. It will enable you to use a Matrix user ID like `@alice:example.com` while hosting services on a subdomain like `matrix.example.com`." msgid "If you can afford to point the base domain at the Matrix server, follow the instructions below which guide you into [serving the base domain](configuring-playbook-base-domain-serving.md) from the integrated web server. It will enable you to use a Matrix user ID like `@alice:example.com` while hosting services on a subdomain like `matrix.example.com`."
msgstr "" msgstr ""
#: ../../../docs/installing.md:125 #: ../../../docs/installing.md:123
msgid "Alternatively, if you're using the base domain for other purposes and cannot point it to the Matrix server (and thus cannot \"serve the base domain\" from it), you most likely need to [manually install well-known files on the base domain's server](configuring-well-known.md#manually-installing-well-known-files-on-the-base-domains-server), but feel free to familiarize yourself with all [server delegation (redirection) options](howto-server-delegation.md)." msgid "Alternatively, if you're using the base domain for other purposes and cannot point it to the Matrix server (and thus cannot \"serve the base domain\" from it), you most likely need to [manually install well-known files on the base domain's server](configuring-well-known.md#manually-installing-well-known-files-on-the-base-domains-server), but feel free to familiarize yourself with all [server delegation (redirection) options](howto-server-delegation.md)."
msgstr "" msgstr ""
#: ../../../docs/installing.md:127 #: ../../../docs/installing.md:125
msgid "To have the base domain served from the integrated web server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" msgid "To have the base domain served from the integrated web server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/installing.md:133 #: ../../../docs/installing.md:131
msgid "After configuring the playbook, run the command below:" msgid "After configuring the playbook, run the command below:"
msgstr "" msgstr ""
#: ../../../docs/installing.md:139 #: ../../../docs/installing.md:137
msgid "**If an error is not returned, the installation has completed and the services have been started successfully**🎉" msgid "**If an error is not returned, the installation has completed and the services have been started successfully**🎉"
msgstr "" msgstr ""
#: ../../../docs/installing.md:141 #: ../../../docs/installing.md:139
msgid "Things to do next" msgid "Things to do next"
msgstr "" msgstr ""
#: ../../../docs/installing.md:143 #: ../../../docs/installing.md:141
msgid "After completing the installation, you can:" msgid "After completing the installation, you can:"
msgstr "" msgstr ""
#: ../../../docs/installing.md:145 #: ../../../docs/installing.md:143
msgid "[check if services work](maintenance-and-troubleshooting.md#how-to-check-if-services-work)" msgid "[check if services work](maintenance-and-troubleshooting.md#how-to-check-if-services-work)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:146 #: ../../../docs/installing.md:144
msgid "or [set up additional services](configuring-playbook.md#other-configuration-options) (bridges to other chat networks, bots, etc.)" msgid "or [set up additional services](configuring-playbook.md#other-configuration-options) (bridges to other chat networks, bots, etc.)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:147 #: ../../../docs/installing.md:145
msgid "or learn how to [upgrade services when new versions are released](maintenance-upgrading-services.md)" msgid "or learn how to [upgrade services when new versions are released](maintenance-upgrading-services.md)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:148 #: ../../../docs/installing.md:146
msgid "or learn how to [maintain your server](faq.md#maintenance)" msgid "or learn how to [maintain your server](faq.md#maintenance)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:149 #: ../../../docs/installing.md:147
msgid "or join some Matrix rooms:" msgid "or join some Matrix rooms:"
msgstr "" msgstr ""
#: ../../../docs/installing.md:150 #: ../../../docs/installing.md:148
msgid "via the *Explore rooms* feature in Element Web or some other clients, or by discovering them using this [matrix-static list](https://view.matrix.org). **Note**: joining large rooms may overload small servers. For tuning guidance on constrained hosts, see [Limit joining heavy rooms on constrained hosts](configuring-playbook-synapse.md#limit-joining-heavy-rooms-on-constrained-hosts)." msgid "via the *Explore rooms* feature in Element Web or some other clients, or by discovering them using this [matrix-static list](https://view.matrix.org). **Note**: joining large rooms may overload small servers. For tuning guidance on constrained hosts, see [Limit joining heavy rooms on constrained hosts](configuring-playbook-synapse.md#limit-joining-heavy-rooms-on-constrained-hosts)."
msgstr "" msgstr ""
#: ../../../docs/installing.md:152 #: ../../../docs/installing.md:150
msgid "or come say Hi in our support room — [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com). You might learn something or get to help someone else new to Matrix hosting." msgid "or come say Hi in our support room — [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com). You might learn something or get to help someone else new to Matrix hosting."
msgstr "" msgstr ""
#: ../../../docs/installing.md:153 #: ../../../docs/installing.md:151
msgid "or help make this playbook better by contributing (code, documentation, or [coffee/beer](https://liberapay.com/s.pantaleev/donate))" msgid "or help make this playbook better by contributing (code, documentation, or [coffee/beer](https://liberapay.com/s.pantaleev/donate))"
msgstr "" msgstr ""
#: ../../../docs/installing.md:155 #: ../../../docs/installing.md:153
msgid "Installing native Matrix clients on your computer" msgid "Installing native Matrix clients on your computer"
msgstr "" msgstr ""
#: ../../../docs/installing.md:157 #: ../../../docs/installing.md:155
msgid "As the playbook's aim is to help you to install and manage Matrix services on your server, if you are looking for dedicated native Matrix clients which run on your computer, you need to install ones by yourself. There is a convenient list which introduces known Matrix clients on this page: <https://matrix.org/ecosystem/clients/>" msgid "As the playbook's aim is to help you to install and manage Matrix services on your server, if you are looking for dedicated native Matrix clients which run on your computer, you need to install ones by yourself. There is a convenient list which introduces known Matrix clients on this page: <https://matrix.org/ecosystem/clients/>"
msgstr "" msgstr ""
#: ../../../docs/installing.md:159 #: ../../../docs/installing.md:157
msgid "If you feel overwhelmed by the variety and the number of the available clients, you might want to install [**Komai**](https://github.com/etkecc/komai), a desktop-first Matrix chat application maintained by the team behind the playbook. It is stable, and just works without quirks!" msgid "If you feel overwhelmed by the variety and the number of the available clients, you might want to install [**Komai**](https://github.com/etkecc/komai), a desktop-first Matrix chat application maintained by the team behind the playbook. It is stable, and just works without quirks!"
msgstr "" msgstr ""
#: ../../../docs/installing.md:161 #: ../../../docs/installing.md:159
msgid "⚠️ Keep the playbook and services up-to-date" msgid "⚠️ Keep the playbook and services up-to-date"
msgstr "" msgstr ""
#: ../../../docs/installing.md:163 #: ../../../docs/installing.md:161
msgid "While this playbook helps you to set up Matrix services and maintain them, it will **not** automatically run the maintenance task for you. You will need to update the playbook and re-run it **manually**." msgid "While this playbook helps you to set up Matrix services and maintain them, it will **not** automatically run the maintenance task for you. You will need to update the playbook and re-run it **manually**."
msgstr "" msgstr ""
#: ../../../docs/installing.md:165 #: ../../../docs/installing.md:163
msgid "The upstream projects, which this playbook makes use of, occasionally if not often suffer from security vulnerabilities." msgid "The upstream projects, which this playbook makes use of, occasionally if not often suffer from security vulnerabilities."
msgstr "" msgstr ""
#: ../../../docs/installing.md:167 #: ../../../docs/installing.md:165
msgid "Since it is unsafe to keep outdated services running on the server connected to the internet, please consider to update the playbook and re-run it periodically, in order to keep the services up-to-date." msgid "Since it is unsafe to keep outdated services running on the server connected to the internet, please consider to update the playbook and re-run it periodically, in order to keep the services up-to-date."
msgstr "" msgstr ""
#: ../../../docs/installing.md:169 #: ../../../docs/installing.md:167
msgid "Also, do not forget to update your system regularly. While this playbook may install basic services, such as Docker, it will not interfere further with system maintenance. Keeping the system itself up-to-date is out of scope for this playbook." msgid "Also, do not forget to update your system regularly. While this playbook may install basic services, such as Docker, it will not interfere further with system maintenance. Keeping the system itself up-to-date is out of scope for this playbook."
msgstr "" msgstr ""
#: ../../../docs/installing.md:171 #: ../../../docs/installing.md:169
msgid "For more information about upgrading or maintaining services with the playbook, take a look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)" msgid "For more information about upgrading or maintaining services with the playbook, take a look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)"
msgstr "" msgstr ""
#: ../../../docs/installing.md:173 #: ../../../docs/installing.md:171
msgid "Feel free to **re-run the setup command any time** you think something is wrong with the server configuration. Ansible will take your configuration and update your server to match." msgid "Feel free to **re-run the setup command any time** you think something is wrong with the server configuration. Ansible will take your configuration and update your server to match."
msgstr "" msgstr ""
#: ../../../docs/installing.md:179 #: ../../../docs/installing.md:177
msgid "**Note**: see [this page on the playbook tags](playbook-tags.md) for more information about those tags." msgid "**Note**: see [this page on the playbook tags](playbook-tags.md) for more information about those tags."
msgstr "" msgstr ""
#: ../../../docs/installing.md:181 #: ../../../docs/installing.md:179
msgid "Make full use of `just` shortcut commands" msgid "Make full use of `just` shortcut commands"
msgstr "" msgstr ""
#: ../../../docs/installing.md:183 #: ../../../docs/installing.md:181
msgid "After you get familiar with reconfiguring and re-running the playbook to maintain the server, upgrade its services, etc., you probably would like to make use of `just` shortcut commands for faster input." msgid "After you get familiar with reconfiguring and re-running the playbook to maintain the server, upgrade its services, etc., you probably would like to make use of `just` shortcut commands for faster input."
msgstr "" msgstr ""
#: ../../../docs/installing.md:185 #: ../../../docs/installing.md:183
msgid "For example, `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." msgid "For example, `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 "" msgstr ""
#: ../../../docs/installing.md:187 #: ../../../docs/installing.md:185
msgid "You can learn about the shortcut commands on this page: [Running `just` commands](just.md)" msgid "You can learn about the shortcut commands on this page: [Running `just` commands](just.md)"
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-05-19 07:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -149,73 +149,69 @@ msgid "Restoring a backup made this way can be done by [importing it](importing-
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:79 #: ../../../docs/maintenance-postgres.md:79
msgid "**Note for Synapse users**: the [official Synapse backup guide](https://element-hq.github.io/synapse/latest/usage/administration/backups.html) recommends that the `e2e_one_time_keys_json` table either not be backed up, or be truncated after restoring (before Synapse is started). The full-server dump command above does include it, so if you ever restore a backup that is older than the server's current state, remember to truncate that table as described in [the importing guide](importing-postgres.md)."
msgstr ""
#: ../../../docs/maintenance-postgres.md:81
msgid "Upgrading PostgreSQL" msgid "Upgrading PostgreSQL"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:83 #: ../../../docs/maintenance-postgres.md:81
msgid "Unless you are using an [external Postgres server](configuring-playbook-external-postgres.md), this playbook initially installs Postgres for you." msgid "Unless you are using an [external Postgres server](configuring-playbook-external-postgres.md), this playbook initially installs Postgres for you."
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:85 #: ../../../docs/maintenance-postgres.md:83
msgid "Once installed, the playbook attempts to preserve the Postgres version it starts with. This is because newer Postgres versions cannot start with data generated by older Postgres versions." msgid "Once installed, the playbook attempts to preserve the Postgres version it starts with. This is because newer Postgres versions cannot start with data generated by older Postgres versions."
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:87 #: ../../../docs/maintenance-postgres.md:85
msgid "Upgrades must be performed manually." msgid "Upgrades must be performed manually."
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:89 #: ../../../docs/maintenance-postgres.md:87
msgid "The playbook can upgrade your existing Postgres setup with the following command:" msgid "The playbook can upgrade your existing Postgres setup with the following command:"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:95 #: ../../../docs/maintenance-postgres.md:93
msgid "**The old Postgres data directory is backed up** automatically, by renaming it to `/matrix/postgres/data-auto-upgrade-backup`. To rename to a different path, pass some extra flags to the command above, like this: `--extra-vars=\"postgres_auto_upgrade_backup_data_path=/another/disk/matrix-postgres-before-upgrade\"`" msgid "**The old Postgres data directory is backed up** automatically, by renaming it to `/matrix/postgres/data-auto-upgrade-backup`. To rename to a different path, pass some extra flags to the command above, like this: `--extra-vars=\"postgres_auto_upgrade_backup_data_path=/another/disk/matrix-postgres-before-upgrade\"`"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:97 #: ../../../docs/maintenance-postgres.md:95
msgid "The auto-upgrade-backup directory stays around forever, until you **manually decide to delete it**." msgid "The auto-upgrade-backup directory stays around forever, until you **manually decide to delete it**."
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:99 #: ../../../docs/maintenance-postgres.md:97
msgid "As part of the upgrade, the database is dumped to `/tmp`, an upgraded and empty Postgres server is started, and then the dump is restored into the new server. To use a different directory for the dump, pass some extra flags to the command above, like this: `--extra-vars=\"postgres_dump_dir=/directory/to/dump/here\"`" msgid "As part of the upgrade, the database is dumped to `/tmp`, an upgraded and empty Postgres server is started, and then the dump is restored into the new server. To use a different directory for the dump, pass some extra flags to the command above, like this: `--extra-vars=\"postgres_dump_dir=/directory/to/dump/here\"`"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:101 #: ../../../docs/maintenance-postgres.md:99
msgid "To save disk space in `/tmp`, the dump file is gzipped on the fly at the expense of CPU usage. If you have plenty of space in `/tmp` and would rather avoid gzipping, you can explicitly pass a dump filename which doesn't end in `.gz`. Example: `--extra-vars=\"postgres_dump_name=matrix-postgres-dump.sql\"`" msgid "To save disk space in `/tmp`, the dump file is gzipped on the fly at the expense of CPU usage. If you have plenty of space in `/tmp` and would rather avoid gzipping, you can explicitly pass a dump filename which doesn't end in `.gz`. Example: `--extra-vars=\"postgres_dump_name=matrix-postgres-dump.sql\"`"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:103 #: ../../../docs/maintenance-postgres.md:101
msgid "**All databases, roles, etc. on the Postgres server are migrated**. However, other components that depend on specific Postgres versions (like the [Postgres Backup](configuring-playbook-postgres-backup.md) service) may need to be updated after the upgrade by using `just install-all`" msgid "**All databases, roles, etc. on the Postgres server are migrated**. However, other components that depend on specific Postgres versions (like the [Postgres Backup](configuring-playbook-postgres-backup.md) service) may need to be updated after the upgrade by using `just install-all`"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:105 #: ../../../docs/maintenance-postgres.md:103
msgid "Tuning PostgreSQL" msgid "Tuning PostgreSQL"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:107 #: ../../../docs/maintenance-postgres.md:105
msgid "PostgreSQL can be [tuned](https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server) to make it run faster. This is done by passing extra arguments to the Postgres process." msgid "PostgreSQL can be [tuned](https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server) to make it run faster. This is done by passing extra arguments to the Postgres process."
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:109 #: ../../../docs/maintenance-postgres.md:107
msgid "The [Postgres Ansible role](https://github.com/mother-of-all-self-hosting/ansible-role-postgres) **already does some tuning by default**, which matches the [tuning logic](https://github.com/le0pard/pgtune/blob/master/src/features/configuration/configurationSlice.js) done by websites like https://pgtune.leopard.in.ua/. You can manually influence some of the tuning variables. These parameters (variables) are injected via the `postgres_postgres_process_extra_arguments_default` variable." msgid "The [Postgres Ansible role](https://github.com/mother-of-all-self-hosting/ansible-role-postgres) **already does some tuning by default**, which matches the [tuning logic](https://github.com/le0pard/pgtune/blob/master/src/features/configuration/configurationSlice.js) done by websites like https://pgtune.leopard.in.ua/. You can manually influence some of the tuning variables. These parameters (variables) are injected via the `postgres_postgres_process_extra_arguments_default` variable."
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:111 #: ../../../docs/maintenance-postgres.md:109
msgid "Most users should be fine with the automatically-done tuning. However, you may wish to:" msgid "Most users should be fine with the automatically-done tuning. However, you may wish to:"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:113 #: ../../../docs/maintenance-postgres.md:111
msgid "**adjust the automatically-determined tuning parameters manually**: change the values for the tuning variables defined in the Postgres role's [default configuration file](https://github.com/mother-of-all-self-hosting/ansible-role-postgres/blob/main/defaults/main.yml) (see `postgres_max_connections`, `postgres_data_storage` etc). These variables are ultimately passed to Postgres via a `postgres_postgres_process_extra_arguments_default` variable" msgid "**adjust the automatically-determined tuning parameters manually**: change the values for the tuning variables defined in the Postgres role's [default configuration file](https://github.com/mother-of-all-self-hosting/ansible-role-postgres/blob/main/defaults/main.yml) (see `postgres_max_connections`, `postgres_data_storage` etc). These variables are ultimately passed to Postgres via a `postgres_postgres_process_extra_arguments_default` variable"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:115 #: ../../../docs/maintenance-postgres.md:113
msgid "**turn automatically-performed tuning off**: override it like this: `postgres_postgres_process_extra_arguments_default: []`" msgid "**turn automatically-performed tuning off**: override it like this: `postgres_postgres_process_extra_arguments_default: []`"
msgstr "" msgstr ""
#: ../../../docs/maintenance-postgres.md:117 #: ../../../docs/maintenance-postgres.md:115
msgid "**add additional tuning parameters**: define your additional Postgres configuration parameters in `postgres_postgres_process_extra_arguments_custom`. See `postgres_postgres_process_extra_arguments_default` defined in the Postgres role's [default configuration file](https://github.com/mother-of-all-self-hosting/ansible-role-postgres/blob/main/defaults/main.yml) for inspiration" msgid "**add additional tuning parameters**: define your additional Postgres configuration parameters in `postgres_postgres_process_extra_arguments_custom`. See `postgres_postgres_process_extra_arguments_default` defined in the Postgres role's [default configuration file](https://github.com/mother-of-all-self-hosting/ansible-role-postgres/blob/main/defaults/main.yml) for inspiration"
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-05-19 07:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -192,18 +192,14 @@ msgstr ""
msgid "You can **learn more about cache-autotuning and the global cache factor settings** in the [Synapse's documentation on caches and associated values](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values)." msgid "You can **learn more about cache-autotuning and the global cache factor settings** in the [Synapse's documentation on caches and associated values](https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#caches-and-associated-values)."
msgstr "" msgstr ""
#: ../../../docs/maintenance-synapse.md:109 #: ../../../docs/maintenance-synapse.md:108
msgid "These limits apply **per Synapse process**. If you have [workers](configuring-playbook-synapse.md#load-balancing-with-workers) enabled, the main process and every worker each apply the configured limits independently, so the theoretical aggregate cache memory usage gets multiplied by the number of processes. When running many workers on a memory-constrained server, consider setting these variables to lower, explicitly chosen values."
msgstr ""
#: ../../../docs/maintenance-synapse.md:111
msgid "To **disable cache auto-tuning**, unset all values:" msgid "To **disable cache auto-tuning**, unset all values:"
msgstr "" msgstr ""
#: ../../../docs/maintenance-synapse.md:119 #: ../../../docs/maintenance-synapse.md:116
msgid "Users who wish to lower Synapse's RAM footprint should look into lowering the global cache factor and tweaking the autotune variables (or disabling auto-tuning). If your cache factor is too low for a given auto tune setting your caches will not reach autotune thresholds and autotune won't be able to do its job. Therefore, when auto-tuning is enabled (which it is by default), it's recommended to have your cache factor be large." msgid "Users who wish to lower Synapse's RAM footprint should look into lowering the global cache factor and tweaking the autotune variables (or disabling auto-tuning). If your cache factor is too low for a given auto tune setting your caches will not reach autotune thresholds and autotune won't be able to do its job. Therefore, when auto-tuning is enabled (which it is by default), it's recommended to have your cache factor be large."
msgstr "" msgstr ""
#: ../../../docs/maintenance-synapse.md:121 #: ../../../docs/maintenance-synapse.md:118
msgid "See also [How do I optimize this setup for a low-power server?](faq.md#how-do-i-optimize-this-setup-for-a-low-power-server)." msgid "See also [How do I optimize this setup for a low-power server?](faq.md#how-do-i-optimize-this-setup-for-a-low-power-server)."
msgstr "" msgstr ""
+57 -93
View File
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-12 15:37+0000\n" "POT-Creation-Date: 2026-05-07 11:16+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -213,265 +213,229 @@ msgid "For your convenience, we have prepared example files of them ([`vars.yml`
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:92 #: ../../../docs/quick-start.md:92
msgid "To start quickly based on these example files, go into the `matrix-docker-ansible-deploy` directory and initialize your configuration, either automatically or manually." msgid "To start quickly based on these example files, go into the `matrix-docker-ansible-deploy` directory and follow the instructions below:"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:94 #: ../../../docs/quick-start.md:94
msgid "To initialize it automatically (with the base domain and server address pre-filled and secrets generated for you), run:"
msgstr ""
#: ../../../docs/quick-start.md:96
msgid "either: `just add-inventory-host example.com 1.2.3.4` (if you have the [`just`](just.md) tool)"
msgstr ""
#: ../../../docs/quick-start.md:97
msgid "or: `make add-inventory-host domain=example.com ip=1.2.3.4` (if you have the `make` program)"
msgstr ""
#: ../../../docs/quick-start.md:99
msgid "… where `example.com` is your \"base domain\" (not `matrix.example.com`) and `1.2.3.4` is your server's external IP address (or domain name)."
msgstr ""
#: ../../../docs/quick-start.md:101
msgid "Given a base domain of `example.com`, this creates:"
msgstr ""
#: ../../../docs/quick-start.md:103
msgid "an entry for `matrix.example.com` (the Matrix server's default hostname: `matrix.` + your base domain) in the inventory hosts file (`inventory/hosts`)"
msgstr ""
#: ../../../docs/quick-start.md:104
msgid "a configuration file (`inventory/host_vars/matrix.example.com/vars.yml`) containing `matrix_domain: example.com` and automatically generated secrets"
msgstr ""
#: ../../../docs/quick-start.md:106
msgid "Afterward, edit these 2 files to adjust them further, as necessary. Existing configuration is never overwritten (the command refuses to run if the host is already in your inventory), so it can also be used for adding more hosts later."
msgstr ""
#: ../../../docs/quick-start.md:108
msgid "To initialize it manually, follow the instructions below:"
msgstr ""
#: ../../../docs/quick-start.md:110
msgid "Create a directory to hold your configuration: `mkdir -p inventory/host_vars/matrix.example.com` where `example.com` is your \"base domain\"" msgid "Create a directory to hold your configuration: `mkdir -p inventory/host_vars/matrix.example.com` where `example.com` is your \"base domain\""
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:111 #: ../../../docs/quick-start.md:95
msgid "Copy the sample configuration file: `cp examples/vars.yml inventory/host_vars/matrix.example.com/vars.yml`" msgid "Copy the sample configuration file: `cp examples/vars.yml inventory/host_vars/matrix.example.com/vars.yml`"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:112 #: ../../../docs/quick-start.md:96
msgid "Copy the sample inventory hosts file: `cp examples/hosts inventory/hosts`" msgid "Copy the sample inventory hosts file: `cp examples/hosts inventory/hosts`"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:113 #: ../../../docs/quick-start.md:97
msgid "Edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`)" msgid "Edit the configuration file (`inventory/host_vars/matrix.example.com/vars.yml`)"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:114 #: ../../../docs/quick-start.md:98
msgid "Edit the inventory hosts file (`inventory/hosts`)" msgid "Edit the inventory hosts file (`inventory/hosts`)"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:116 #: ../../../docs/quick-start.md:100
msgid "Before editing these 2 files, make sure to read explanations on them to understand what needs to be configured." msgid "Before editing these 2 files, make sure to read explanations on them to understand what needs to be configured."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:118 #: ../../../docs/quick-start.md:102
msgid "**💡 Notes:**" msgid "**💡 Notes:**"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:119 #: ../../../docs/quick-start.md:103
msgid "If you are not in control of anything on the base domain, you would need to set additional configuration on `vars.yml`. For more information, see [How do I install on matrix.example.com without involving the base domain?](faq.md#how-do-i-install-on-matrix-example-com-without-involving-the-base-domain) on our FAQ." msgid "If you are not in control of anything on the base domain, you would need to set additional configuration on `vars.yml`. For more information, see [How do I install on matrix.example.com without involving the base domain?](faq.md#how-do-i-install-on-matrix-example-com-without-involving-the-base-domain) on our FAQ."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:120 #: ../../../docs/quick-start.md:104
msgid "Certain configuration decisions (like the base domain configured in `matrix_domain` and homeserver implementation configured in `matrix_homeserver_implementation`) are final. If you make the wrong choice and wish to change it, you'll have to run the Uninstalling step and start over." msgid "Certain configuration decisions (like the base domain configured in `matrix_domain` and homeserver implementation configured in `matrix_homeserver_implementation`) are final. If you make the wrong choice and wish to change it, you'll have to run the Uninstalling step and start over."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:121 #: ../../../docs/quick-start.md:105
msgid "Instead of configuring a lot of things all at once, we recommend starting with the basic (default) settings in order to get yourself familiar with how the playbook works. After making sure that everything works as expected, you can add (and remove) advanced settings / features and run the playbook as many times as you wish." msgid "Instead of configuring a lot of things all at once, we recommend starting with the basic (default) settings in order to get yourself familiar with how the playbook works. After making sure that everything works as expected, you can add (and remove) advanced settings / features and run the playbook as many times as you wish."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:123 #: ../../../docs/quick-start.md:107
msgid "Install" msgid "Install"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:125 #: ../../../docs/quick-start.md:109
msgid "<sup>This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Installing](installing.md)</sup>" msgid "<sup>This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Installing](installing.md)</sup>"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:127 #: ../../../docs/quick-start.md:111
msgid "After editing `vars.yml` and `hosts` files, let's start the **installation** procedure." msgid "After editing `vars.yml` and `hosts` files, let's start the **installation** procedure."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:129 #: ../../../docs/quick-start.md:113
msgid "Update Ansible roles" msgid "Update Ansible roles"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:131 #: ../../../docs/quick-start.md:115
msgid "Before installing, you need to update the Ansible roles that this playbook uses and fetches from outside." msgid "Before installing, you need to update the Ansible roles that this playbook uses and fetches from outside."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:133 #: ../../../docs/quick-start.md:117
msgid "To update your playbook directory and all upstream Ansible roles, run:" msgid "To update your playbook directory and all upstream Ansible roles, run:"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:135 #: ../../../docs/quick-start.md:119
msgid "either: `just update`" msgid "either: `just update`"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:136 #: ../../../docs/quick-start.md:120
msgid "or: a combination of `git pull` and `just roles` (or `make roles` if you have `make` program on your computer instead of `just`)" msgid "or: a combination of `git pull` and `just roles` (or `make roles` if you have `make` program on your computer instead of `just`)"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:138 #: ../../../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 after updating the playbook: `git pull; 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 "" msgstr ""
#: ../../../docs/quick-start.md:140 #: ../../../docs/quick-start.md:124
msgid "Run installation command" msgid "Run installation command"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:142 #: ../../../docs/quick-start.md:126
msgid "Then, run the command below to start installation:" msgid "Then, run the command below to start installation:"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:148 #: ../../../docs/quick-start.md:132
msgid "If you **don't** use SSH keys for authentication, but rather a regular password, you may need to add `--ask-pass` to the command." msgid "If you **don't** use SSH keys for authentication, but rather a regular password, you may need to add `--ask-pass` to the command."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:150 #: ../../../docs/quick-start.md:134
msgid "If you **do** use SSH keys for authentication, **and** use a non-root user to *become* root (sudo), you may need to add `-K` (`--ask-become-pass`) to the command." msgid "If you **do** use SSH keys for authentication, **and** use a non-root user to *become* root (sudo), you may need to add `-K` (`--ask-become-pass`) to the command."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:152 #: ../../../docs/quick-start.md:136
msgid "Wait until the command completes. If it's all green, everything should be running properly." msgid "Wait until the command completes. If it's all green, everything should be running properly."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:154 #: ../../../docs/quick-start.md:138
msgid "Create your user account" msgid "Create your user account"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:156 #: ../../../docs/quick-start.md:140
msgid "<sup>This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Registering users](registering-users.md)</sup>" msgid "<sup>This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Registering users](registering-users.md)</sup>"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:158 #: ../../../docs/quick-start.md:142
msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server." msgid "As you have configured your brand new server and the client, you need to **create your user account** on your Matrix server."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:160 #: ../../../docs/quick-start.md:144
msgid "To create your user account (as an administrator of the server) via this Ansible playbook, run the command below on your local computer." msgid "To create your user account (as an administrator of the server) via this Ansible playbook, run the command below on your local computer."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:162 #: ../../../docs/quick-start.md:146
msgid "**💡 Notes**:" msgid "**💡 Notes**:"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:163 #: ../../../docs/quick-start.md:147
msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`" msgid "Make sure to adjust `YOUR_USERNAME_HERE` and `YOUR_PASSWORD_HERE`"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:164 #: ../../../docs/quick-start.md:148
msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)" msgid "For `YOUR_USERNAME_HERE`, use a plain username like `alice`, not your full ID (`@alice:example.com`)"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:176 #: ../../../docs/quick-start.md:160
msgid "Finalize server installation" msgid "Finalize server installation"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:178 #: ../../../docs/quick-start.md:162
msgid "<sup>This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Server Delegation](howto-server-delegation.md)</sup>" msgid "<sup>This section is optimized for this quick-start guide and is derived from the following full-documentation page: [Server Delegation](howto-server-delegation.md)</sup>"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:180 #: ../../../docs/quick-start.md:164
msgid "Now that you've configured Matrix services and your user account, you need to **finalize the installation process** by [setting up Matrix delegation (redirection)](howto-server-delegation.md), so that your Matrix server (`matrix.example.com`) can present itself as the base domain (`example.com`) in the Matrix network." msgid "Now that you've configured Matrix services and your user account, you need to **finalize the installation process** by [setting up Matrix delegation (redirection)](howto-server-delegation.md), so that your Matrix server (`matrix.example.com`) can present itself as the base domain (`example.com`) in the Matrix network."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:182 #: ../../../docs/quick-start.md:166
msgid "**This is required for federation to work!** Without a proper configuration, your server will effectively not be part of the Matrix network." msgid "**This is required for federation to work!** Without a proper configuration, your server will effectively not be part of the Matrix network."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:184 #: ../../../docs/quick-start.md:168
msgid "To configure the delegation, you have these two options. Choose one of them according to your situation." msgid "To configure the delegation, you have these two options. Choose one of them according to your situation."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:186 #: ../../../docs/quick-start.md:170
msgid "If you can afford to point the base domain at the Matrix server, follow the instruction below which guides you into [serving the base domain](configuring-playbook-base-domain-serving.md) from the integrated web server." msgid "If you can afford to point the base domain at the Matrix server, follow the instruction below which guides you into [serving the base domain](configuring-playbook-base-domain-serving.md) from the integrated web server."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:187 #: ../../../docs/quick-start.md:171
msgid "Alternatively, if you're using the base domain for other purposes and cannot point it to the Matrix server (and thus cannot \"serve the base domain\" from it), you most likely need to [manually install well-known files on the base domain's server](configuring-well-known.md#manually-installing-well-known-files-on-the-base-domains-server)." msgid "Alternatively, if you're using the base domain for other purposes and cannot point it to the Matrix server (and thus cannot \"serve the base domain\" from it), you most likely need to [manually install well-known files on the base domain's server](configuring-well-known.md#manually-installing-well-known-files-on-the-base-domains-server)."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:189 #: ../../../docs/quick-start.md:173
msgid "To have the base domain served from the integrated web server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:" msgid "To have the base domain served from the integrated web server, add the following configuration to your `inventory/host_vars/matrix.example.com/vars.yml` file:"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:195 #: ../../../docs/quick-start.md:179
msgid "After configuring the playbook, run the command below and wait until it finishes:" msgid "After configuring the playbook, run the command below and wait until it finishes:"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:201 #: ../../../docs/quick-start.md:185
msgid "💡 Running the `install-matrix-static-files` playbook tag (as done here) is an optimized version of running [the full setup command](#run-installation-command)." msgid "💡 Running the `install-matrix-static-files` playbook tag (as done here) is an optimized version of running [the full setup command](#run-installation-command)."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:203 #: ../../../docs/quick-start.md:187
msgid "After the command finishes, you can also check whether your server federates with the Matrix network by using the [Federation Tester](https://federationtester.matrix.org/) against your base domain (`example.com`), not the `matrix.example.com` subdomain." msgid "After the command finishes, you can also check whether your server federates with the Matrix network by using the [Federation Tester](https://federationtester.matrix.org/) against your base domain (`example.com`), not the `matrix.example.com` subdomain."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:205 #: ../../../docs/quick-start.md:189
msgid "Re-run the full setup command any time" msgid "Re-run the full setup command any time"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:207 #: ../../../docs/quick-start.md:191
msgid "If you think something is wrong with the server configuration, feel free to re-run the setup command any time:" msgid "If you think something is wrong with the server configuration, feel free to re-run the setup command any time:"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:213 #: ../../../docs/quick-start.md:197
msgid "Log in to your user account" msgid "Log in to your user account"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:215 #: ../../../docs/quick-start.md:199
msgid "Finally, let's make sure that you can log in to the created account with the specified password." msgid "Finally, let's make sure that you can log in to the created account with the specified password."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:217 #: ../../../docs/quick-start.md:201
msgid "You should be able to log in to it with your own [Element Web](configuring-playbook-client-element-web.md) client which you have set up at `element.example.com` by running the playbook. Open the URL (`https://element.example.com`) in a web browser and enter your credentials to log in." msgid "You should be able to log in to it with your own [Element Web](configuring-playbook-client-element-web.md) client which you have set up at `element.example.com` by running the playbook. Open the URL (`https://element.example.com`) in a web browser and enter your credentials to log in."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:219 #: ../../../docs/quick-start.md:203
msgid "**If you successfully logged in to your account, the installation and configuration have completed successfully**🎉" msgid "**If you successfully logged in to your account, the installation and configuration have completed successfully**🎉"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:221 #: ../../../docs/quick-start.md:205
msgid "Come say Hi👋 in our support room — [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com). You might learn something or get to help someone else new to Matrix hosting." msgid "Come say Hi👋 in our support room — [#matrix-docker-ansible-deploy:devture.com](https://matrix.to/#/#matrix-docker-ansible-deploy:devture.com). You might learn something or get to help someone else new to Matrix hosting."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:223 #: ../../../docs/quick-start.md:207
msgid "Things to do next" msgid "Things to do next"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:225 #: ../../../docs/quick-start.md:209
msgid "Once you get familiar with the playbook, you might probably want to set up additional services such as a bridge on your server." msgid "Once you get familiar with the playbook, you might probably want to set up additional services such as a bridge on your server."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:227 #: ../../../docs/quick-start.md:211
msgid "As this page intends to be a quick start guide which explains how to start the core Matrix services, it does not cover a topic like how to set them up. Take a look at the list of [things to do next](installing.md#things-to-do-next) to learn more." msgid "As this page intends to be a quick start guide which explains how to start the core Matrix services, it does not cover a topic like how to set them up. Take a look at the list of [things to do next](installing.md#things-to-do-next) to learn more."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:229 #: ../../../docs/quick-start.md:213
msgid "⚠️Keep the playbook and services up-to-date" msgid "⚠️Keep the playbook and services up-to-date"
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:231 #: ../../../docs/quick-start.md:215
msgid "While this playbook helps you to set up Matrix services and maintain them, it will **not** automatically run the maintenance task for you. You will need to update the playbook and re-run it **manually**." msgid "While this playbook helps you to set up Matrix services and maintain them, it will **not** automatically run the maintenance task for you. You will need to update the playbook and re-run it **manually**."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:233 #: ../../../docs/quick-start.md:217
msgid "Since it is unsafe to keep outdated services running on the server connected to the internet, please consider to update the playbook and re-run it periodically, in order to keep the services up-to-date." msgid "Since it is unsafe to keep outdated services running on the server connected to the internet, please consider to update the playbook and re-run it periodically, in order to keep the services up-to-date."
msgstr "" msgstr ""
#: ../../../docs/quick-start.md:235 #: ../../../docs/quick-start.md:219
msgid "For more information about upgrading or maintaining services with the playbook, take a look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)" msgid "For more information about upgrading or maintaining services with the playbook, take a look at this page: [Upgrading the Matrix services](maintenance-upgrading-services.md)"
msgstr "" msgstr ""
@@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: matrix-docker-ansible-deploy \n" "Project-Id-Version: matrix-docker-ansible-deploy \n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-07-16 13:47+0000\n" "POT-Creation-Date: 2026-05-19 07:40+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -109,41 +109,37 @@ msgid "`matrix-bridge-mautrix-gmessages`"
msgstr "" msgstr ""
#: ../../../docs/self-building.md:44 #: ../../../docs/self-building.md:44
msgid "`matrix-bridge-mautrix-gvoice`"
msgstr ""
#: ../../../docs/self-building.md:45
msgid "`matrix-bridge-mautrix-whatsapp`" msgid "`matrix-bridge-mautrix-whatsapp`"
msgstr "" msgstr ""
#: ../../../docs/self-building.md:46 #: ../../../docs/self-building.md:45
msgid "`matrix-bridge-mx-puppet-steam`" msgid "`matrix-bridge-mx-puppet-steam`"
msgstr "" msgstr ""
#: ../../../docs/self-building.md:47 #: ../../../docs/self-building.md:46
msgid "`matrix-bot-mjolnir`" msgid "`matrix-bot-mjolnir`"
msgstr "" msgstr ""
#: ../../../docs/self-building.md:48 #: ../../../docs/self-building.md:47
msgid "`matrix-bot-honoroit`" msgid "`matrix-bot-honoroit`"
msgstr "" msgstr ""
#: ../../../docs/self-building.md:49 #: ../../../docs/self-building.md:48
msgid "`matrix-bot-matrix-reminder-bot`" msgid "`matrix-bot-matrix-reminder-bot`"
msgstr "" msgstr ""
#: ../../../docs/self-building.md:50 #: ../../../docs/self-building.md:49
msgid "`matrix-bot-maubot`" msgid "`matrix-bot-maubot`"
msgstr "" msgstr ""
#: ../../../docs/self-building.md:51 #: ../../../docs/self-building.md:50
msgid "`matrix-pantalaimon`" msgid "`matrix-pantalaimon`"
msgstr "" msgstr ""
#: ../../../docs/self-building.md:53 #: ../../../docs/self-building.md:52
msgid "Adding self-building support to other roles is welcome. Feel free to contribute!" msgid "Adding self-building support to other roles is welcome. Feel free to contribute!"
msgstr "" msgstr ""
#: ../../../docs/self-building.md:55 #: ../../../docs/self-building.md:54
msgid "If you'd like **to force self-building** even if an image is available for your architecture, look into the `matrix_*_self_build` variables provided by individual roles." msgid "If you'd like **to force self-building** even if an image is available for your architecture, look into the `matrix_*_self_build` variables provided by individual roles."
msgstr "" msgstr ""
@@ -1,253 +0,0 @@
# 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-07-18 04:11+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/style-guide.md:8
msgid "Style guide for playbook developers"
msgstr ""
#: ../../../docs/style-guide.md:10
msgid "This page describes the conventions used when developing this playbook and writing its documentation. Follow it when adding a new component (a role and its documentation page) or editing existing ones, so that everything stays consistent."
msgstr ""
#: ../../../docs/style-guide.md:12
msgid "The guide is meant for anyone preparing a contribution, humans and AI agents alike. If you find existing files that deviate from it, feel free to send a pull request bringing them in line."
msgstr ""
#: ../../../docs/style-guide.md:14
msgid "Language"
msgstr ""
#: ../../../docs/style-guide.md:16
msgid "Write in English, using American spelling (\"customize\", not \"customise\")."
msgstr ""
#: ../../../docs/style-guide.md:17
msgid "Proper nouns are capitalized: Matrix, Element, Synapse, Ansible, Docker, Traefik, Postgres, Grafana, etc. Some projects deliberately brand themselves in lowercase (e.g. `baibot`, `rageshake`, `coturn`, `mautrix-telegram`) and keep their lowercase name even at the start of a sentence. When in doubt, follow the upstream project's own spelling."
msgstr ""
#: ../../../docs/style-guide.md:19
msgid "Markdown style"
msgstr ""
#: ../../../docs/style-guide.md:21
msgid "Do not hard-wrap prose. Each paragraph is a single line in the source file, no matter how long. This keeps the source and the rendered result consistent and makes diffs and translations easier to work with."
msgstr ""
#: ../../../docs/style-guide.md:22
msgid "Number ordered lists sequentially (`1.`, `2.`, `3.`), instead of relying on the Markdown renderer to fix a repeated (`1.`, `1.`, `1.`) or wrong (`1.`, `2.`, `4.`) sequence."
msgstr ""
#: ../../../docs/style-guide.md:23
msgid "Use `-` for unordered lists."
msgstr ""
#: ../../../docs/style-guide.md:24
msgid "Wrap variable names, file paths, commands, domains, and service names in backticks (`` ` ``)."
msgstr ""
#: ../../../docs/style-guide.md:25
msgid "Use fenced code blocks with a language hint (```` ```yaml ````, ```` ```sh ````) for configuration and command examples."
msgstr ""
#: ../../../docs/style-guide.md:26
msgid "Use relative links when linking between documentation pages (e.g. `[Configuring DNS](configuring-dns.md)`)."
msgstr ""
#: ../../../docs/style-guide.md:27
msgid "Link to the upstream project's official documentation instead of duplicating its content (installation steps, distro-specific commands, etc.). Copied instructions go stale; links age much better."
msgstr ""
#: ../../../docs/style-guide.md:29
msgid "Example values"
msgstr ""
#: ../../../docs/style-guide.md:31
msgid "Use these placeholder values in documentation and code comments, so examples look the same everywhere:"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "What"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "Value"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "base domain"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "`example.com`"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "Matrix server domain"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "`matrix.example.com`"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "another (federated) server"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "`example.org`"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "user IDs"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "`@alice:example.com`, `@bob:example.com`"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "room ID"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "`!qporfwt:example.com`"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "room alias"
msgstr ""
#: ../../../docs/style-guide.md:0
msgid "`#room:example.com`"
msgstr ""
#: ../../../docs/style-guide.md:42
msgid "The user and room ID values follow the examples in the [Matrix specification](https://spec.matrix.org/latest/#room-structure). Never use real domains, usernames, or tokens in examples."
msgstr ""
#: ../../../docs/style-guide.md:44
msgid "Component-specific identifiers (e.g. a bridge bot like `@telegrambot:example.com`) are fine where they make an example clearer."
msgstr ""
#: ../../../docs/style-guide.md:46
msgid "Documentation page structure"
msgstr ""
#: ../../../docs/style-guide.md:48
msgid "Each component gets its own documentation page: `docs/configuring-playbook-<component>.md` (bridges use a `configuring-playbook-bridge-<name>.md` file name, bots use `configuring-playbook-bot-<name>.md`)."
msgstr ""
#: ../../../docs/style-guide.md:50
msgid "A typical page looks like this, with sections appearing in this order (sections that do not apply can be omitted):"
msgstr ""
#: ../../../docs/style-guide.md:74
msgid "Notes:"
msgstr ""
#: ../../../docs/style-guide.md:76
msgid "Headings use sentence case (\"Adjusting the playbook configuration\", not \"Adjusting The Playbook Configuration\")."
msgstr ""
#: ../../../docs/style-guide.md:77
msgid "The \"Adjusting the playbook configuration\" section tells people to add configuration to their `inventory/host_vars/matrix.example.com/vars.yml` file and shows a minimal `yaml` example."
msgstr ""
#: ../../../docs/style-guide.md:78
msgid "The \"Installing\" section references [playbook tags](playbook-tags.md) and shows the `just` command or `ansible-playbook` invocation to run."
msgstr ""
#: ../../../docs/style-guide.md:79
msgid "Look at an existing page for a similar component (another bridge, bot, or service) and copy its structure. The mautrix bridge pages share common sections via [Setting up a Generic Mautrix Bridge](configuring-playbook-bridge-mautrix-bridges.md), so bridge pages link there instead of repeating the shared content."
msgstr ""
#: ../../../docs/style-guide.md:81
msgid "Adding a new component"
msgstr ""
#: ../../../docs/style-guide.md:83
msgid "First, consider where the component belongs:"
msgstr ""
#: ../../../docs/style-guide.md:85
msgid "Matrix-specific components are developed as roles in this repository, under `roles/custom/`."
msgstr ""
#: ../../../docs/style-guide.md:86
msgid "Components that are not Matrix-specific should live as external roles, preferably in the [MASH organization](https://github.com/mother-of-all-self-hosting/), and get wired into the playbook via `requirements.yml`."
msgstr ""
#: ../../../docs/style-guide.md:87
msgid "For components that are not Matrix-specific, also consider whether they belong in this Matrix playbook at all, or rather in [mash-playbook](https://github.com/mother-of-all-self-hosting/mash-playbook). Certain components (like Grafana or backup tools) are suitable for both playbooks. If something is too far away from general usefulness on a Matrix server, we prefer not to include it here, and to only have it in mash-playbook."
msgstr ""
#: ../../../docs/style-guide.md:89
msgid "Besides the role itself and its documentation page, a new component touches a few other places. Make sure a pull request adding one covers all of them:"
msgstr ""
#: ../../../docs/style-guide.md:91
msgid "The role, in `roles/custom/matrix-<component>/` (or an external role wired via `requirements.yml`, as described above)."
msgstr ""
#: ../../../docs/style-guide.md:92
msgid "Role registration in `setup.yml`."
msgstr ""
#: ../../../docs/style-guide.md:93
msgid "Wiring in `group_vars/matrix_servers`. Wire the component to the rest of the playbook there (referencing variables of other roles), but keep values that the role can construct by itself in the role's own `defaults/main.yml`."
msgstr ""
#: ../../../docs/style-guide.md:94
msgid "The documentation page, `docs/configuring-playbook-<component>.md`, linked from the table of contents in `docs/README.md`."
msgstr ""
#: ../../../docs/style-guide.md:95
msgid "An entry in the supported services list in `README.md`."
msgstr ""
#: ../../../docs/style-guide.md:96
msgid "A row in `docs/container-images.md`, if the component runs a container."
msgstr ""
#: ../../../docs/style-guide.md:97
msgid "A `CHANGELOG.md` entry announcing the new component."
msgstr ""
#: ../../../docs/style-guide.md:98
msgid "License headers: every new file carries `SPDX-FileCopyrightText` and `SPDX-License-Identifier` comments, as this project follows the [REUSE](https://reuse.software/) specification."
msgstr ""
#: ../../../docs/style-guide.md:100
msgid "Variable naming conventions:"
msgstr ""
#: ../../../docs/style-guide.md:102
msgid "The variable prefix matches the role directory name: the `matrix-bridge-mautrix-telegram` role uses `matrix_bridge_mautrix_telegram_*` variables, the `matrix-bot-mjolnir` role uses `matrix_bot_mjolnir_*` variables, and so on."
msgstr ""
#: ../../../docs/style-guide.md:103
msgid "List-type variables that the playbook may extend automatically follow the `_auto` + `_custom` split: the main variable combines an `_auto` component (managed by the playbook via `group_vars`) and a `_custom` component (reserved for users). Where it makes sense, there is also a `_default` component, containing sensible defaults provided by the role itself. See `matrix_bridge_hookshot_container_additional_networks` and `matrix_bridge_hookshot_systemd_required_services_list` for examples."
msgstr ""
#: ../../../docs/style-guide.md:104
msgid "When a variable is renamed or removed, deprecate it so that people with stale configuration get told about it instead of it being silently ignored. Each role deprecates its own variables, in its `validate_config.yml` tasks. The `matrix_playbook_migration` role handles the cases a role cannot: variables of completely eliminated roles (which no longer have their own `validate_config.yml`), and validation that needs to run very early for some reason."
msgstr ""
#: ../../../docs/style-guide.md:105
msgid "For breaking changes that require the user's attention (beyond a renamed variable that validation already catches), bump `matrix_playbook_migration_expected_version` and add a matching entry to the `matrix_playbook_migration_breaking_changes` list (a summary and a `CHANGELOG.md` link), in `roles/custom/matrix_playbook_migration/defaults/main.yml`. Users declare `matrix_playbook_migration_validated_version` in their configuration, and the playbook walks them through all breaking changes between their validated version and the expected one. Also update the recommended value in `examples/vars.yml`; a pre-commit check enforces that it matches the expected version."
msgstr ""
+2 -2
View File
@@ -22,7 +22,7 @@ roles:
#!/usr/bin/env sh #!/usr/bin/env sh
echo "[NOTE] This command just updates the roles, but if you want to update everything at once (playbook, roles, etc.) - use 'just update'" echo "[NOTE] This command just updates the roles, but if you want to update everything at once (playbook, roles, etc.) - use 'just update'"
if [ -x "$(command -v agru)" ]; then if [ -x "$(command -v agru)" ]; then
agru -no-tui agru
else else
rm -rf roles/galaxy rm -rf roles/galaxy
ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force ansible-galaxy install -r requirements.yml -p roles/galaxy/ --force
@@ -33,7 +33,7 @@ update *flags: update-playbook-only
#!/usr/bin/env sh #!/usr/bin/env sh
if [ -x "$(command -v agru)" ]; then if [ -x "$(command -v agru)" ]; then
echo {{ if flags == "" { "Installing roles pinned in requirements.yml…" } else { if flags == "-u" { "Updating roles and pinning new versions in requirements.yml…" } else { "Unknown flags passed" } } }} echo {{ if flags == "" { "Installing roles pinned in requirements.yml…" } else { if flags == "-u" { "Updating roles and pinning new versions in requirements.yml…" } else { "Unknown flags passed" } } }}
agru -no-tui {{ flags }} agru {{ flags }}
else else
echo "[NOTE] You are using the standard ansible-galaxy tool to install roles, which is slow and lacks other features. We recommend installing the 'agru' tool to speed up the process: https://github.com/etkecc/agru#where-to-get" echo "[NOTE] You are using the standard ansible-galaxy tool to install roles, which is slow and lacks other features. We recommend installing the 'agru' tool to speed up the process: https://github.com/etkecc/agru#where-to-get"
echo "Installing roles…" echo "Installing roles…"
+1 -1
View File
@@ -3,7 +3,7 @@
# SPDX-License-Identifier: AGPL-3.0-or-later # SPDX-License-Identifier: AGPL-3.0-or-later
[tools] [tools]
prek = "0.4.10" prek = "0.4.9"
[settings] [settings]
yes = true yes = true
+8 -8
View File
@@ -4,7 +4,7 @@
version: v1.0.0-7 version: v1.0.0-7
name: auxiliary name: auxiliary
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-backup_borg.git
version: v1.4.4-2.1.6-2 version: v1.4.4-2.1.4-1
name: backup_borg name: backup_borg
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-cinny.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-cinny.git
version: v4.12.3-0 version: v4.12.3-0
@@ -33,7 +33,7 @@
version: v4.99.1-r0-2-1 version: v4.99.1-r0-2-1
name: exim_relay name: exim_relay
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-grafana.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-grafana.git
version: v13.0.2-1 version: v13.0.2-0
name: grafana name: grafana
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-hydrogen.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-hydrogen.git
version: v0.5.1-5 version: v0.5.1-5
@@ -42,7 +42,7 @@
version: v11031-0 version: v11031-0
name: jitsi name: jitsi
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-livekit-server.git
version: v1.13.4-0 version: v1.13.3-0
name: livekit_server name: livekit_server
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git
version: v2.26.0-0 version: v2.26.0-0
@@ -57,7 +57,7 @@
version: dd6e15246b7a9a2d921e0b3f9cd8a4a917a1bb2f version: dd6e15246b7a9a2d921e0b3f9cd8a4a917a1bb2f
name: playbook_state_preserver name: playbook_state_preserver
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres.git
version: v18.4-2 version: v18.4-0
name: postgres name: postgres
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-postgres-backup.git
version: v18-3 version: v18-3
@@ -66,16 +66,16 @@
version: v3.13.1-0 version: v3.13.1-0
name: prometheus name: prometheus
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-nginxlog-exporter.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-nginxlog-exporter.git
version: v1.10.0-5 version: v1.10.0-4
name: prometheus_nginxlog_exporter name: prometheus_nginxlog_exporter
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-node-exporter.git
version: v1.12.1-0 version: v1.12.0-0
name: prometheus_node_exporter name: prometheus_node_exporter
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.git
version: v0.20.1-0 version: v0.20.1-0
name: prometheus_postgres_exporter name: prometheus_postgres_exporter
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-sable.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-sable.git
version: v1.20.0-0 version: v1.19.3-0
name: sable name: sable
- src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git - src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git
version: v1.5.0-0 version: v1.5.0-0
@@ -87,7 +87,7 @@
version: v1.1.0-1 version: v1.1.0-1
name: timesync name: timesync
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik.git
version: v3.7.7-1 version: v3.7.7-0
name: traefik name: traefik
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik-certs-dumper.git - src: git+https://github.com/mother-of-all-self-hosting/ansible-role-traefik-certs-dumper.git
version: v2.11.4-0 version: v2.11.4-0
@@ -11,7 +11,7 @@
matrix_alertmanager_receiver_enabled: true matrix_alertmanager_receiver_enabled: true
# renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver # renovate: datasource=docker depName=docker.io/metio/matrix-alertmanager-receiver
matrix_alertmanager_receiver_version: 2026.7.15 matrix_alertmanager_receiver_version: 2026.7.8
matrix_alertmanager_receiver_scheme: https matrix_alertmanager_receiver_scheme: https
@@ -260,33 +260,6 @@ matrix_authentication_service_config_account_registration_token_required: false
######################################################################################## ########################################################################################
########################################################################################
# #
# Captcha configuration #
# #
########################################################################################
# Controls the `captcha.service` configuration setting.
#
# Which service to use for CAPTCHA protection of certain operations (like self-service password registration).
# Valid values: recaptcha_v2, cloudflare_turnstile, hcaptcha
# When defined, `matrix_authentication_service_config_captcha_site_key` and `matrix_authentication_service_config_captcha_secret_key` must be defined as well.
# Leave empty to disable CAPTCHA protection.
matrix_authentication_service_config_captcha_service: ""
# Controls the `captcha.site_key` configuration setting.
matrix_authentication_service_config_captcha_site_key: ""
# Controls the `captcha.secret_key` configuration setting.
matrix_authentication_service_config_captcha_secret_key: ""
########################################################################################
# #
# /Captcha configuration #
# #
########################################################################################
######################################################################################## ########################################################################################
# # # #
# Database configuration # # Database configuration #
@@ -25,8 +25,6 @@
- {'name': 'matrix_authentication_service_container_labels_public_compatibility_layer_hostname', when: "{{ matrix_authentication_service_container_labels_public_compatibility_layer_enabled }}"} - {'name': 'matrix_authentication_service_container_labels_public_compatibility_layer_hostname', when: "{{ matrix_authentication_service_container_labels_public_compatibility_layer_enabled }}"}
- {'name': 'matrix_authentication_service_container_labels_internal_compatibility_layer_entrypoints', when: "{{ matrix_authentication_service_container_labels_internal_compatibility_layer_enabled }}"} - {'name': 'matrix_authentication_service_container_labels_internal_compatibility_layer_entrypoints', when: "{{ matrix_authentication_service_container_labels_internal_compatibility_layer_enabled }}"}
- {'name': 'matrix_authentication_service_config_email_hostname', when: "{{ matrix_authentication_service_config_email_transport == 'smtp' }}"} - {'name': 'matrix_authentication_service_config_email_hostname', when: "{{ matrix_authentication_service_config_email_transport == 'smtp' }}"}
- {'name': 'matrix_authentication_service_config_captcha_site_key', when: "{{ matrix_authentication_service_config_captcha_service != '' }}"}
- {'name': 'matrix_authentication_service_config_captcha_secret_key', when: "{{ matrix_authentication_service_config_captcha_service != '' }}"}
- name: Fail if matrix_authentication_service_config_secrets_encryption is not 64 characters long - name: Fail if matrix_authentication_service_config_secrets_encryption is not 64 characters long
ansible.builtin.fail: ansible.builtin.fail:
@@ -38,11 +36,6 @@
msg: "matrix_authentication_service_config_email_transport must be one of: blackhole, smtp, or aws_ses" msg: "matrix_authentication_service_config_email_transport must be one of: blackhole, smtp, or aws_ses"
when: "matrix_authentication_service_config_email_transport not in ['blackhole', 'smtp', 'aws_ses']" when: "matrix_authentication_service_config_email_transport not in ['blackhole', 'smtp', 'aws_ses']"
- name: Fail if matrix_authentication_service_config_captcha_service is invalid
ansible.builtin.fail:
msg: "matrix_authentication_service_config_captcha_service must be one of: recaptcha_v2, cloudflare_turnstile, or hcaptcha (or empty, to disable CAPTCHA protection)"
when: "matrix_authentication_service_config_captcha_service not in ['', 'recaptcha_v2', 'cloudflare_turnstile', 'hcaptcha']"
- name: (Deprecation) Catch and report renamed matrix-authentication-service settings - name: (Deprecation) Catch and report renamed matrix-authentication-service settings
ansible.builtin.fail: ansible.builtin.fail:
msg: >- msg: >-
@@ -72,13 +72,6 @@ account:
login_with_email_allowed: {{ matrix_authentication_service_config_account_login_with_email_allowed | to_json }} login_with_email_allowed: {{ matrix_authentication_service_config_account_login_with_email_allowed | to_json }}
registration_token_required: {{ matrix_authentication_service_config_account_registration_token_required | to_json }} registration_token_required: {{ matrix_authentication_service_config_account_registration_token_required | to_json }}
{% if matrix_authentication_service_config_captcha_service %}
captcha:
service: {{ matrix_authentication_service_config_captcha_service | to_json }}
site_key: {{ matrix_authentication_service_config_captcha_site_key | to_json }}
secret_key: {{ matrix_authentication_service_config_captcha_secret_key | to_json }}
{% endif %}
clients: {{ matrix_authentication_service_config_clients | to_json }} clients: {{ matrix_authentication_service_config_clients | to_json }}
{% if matrix_authentication_service_config_upstream_oauth2_providers | length > 0 %} {% if matrix_authentication_service_config_upstream_oauth2_providers | length > 0 %}
@@ -15,82 +15,83 @@
# matrix-appservice-discord is a Matrix <-> Discord bridge # matrix-appservice-discord is a Matrix <-> Discord bridge
# Project source code URL: https://github.com/matrix-org/matrix-appservice-discord # Project source code URL: https://github.com/matrix-org/matrix-appservice-discord
matrix_bridge_appservice_discord_enabled: false matrix_appservice_discord_enabled: false
matrix_appservice_discord_container_image_self_build: false
# renovate: datasource=docker depName=ghcr.io/matrix-org/matrix-appservice-discord # renovate: datasource=docker depName=ghcr.io/matrix-org/matrix-appservice-discord
matrix_bridge_appservice_discord_version: v4.0.0 matrix_appservice_discord_version: v4.0.0
matrix_bridge_appservice_discord_container_image: "{{ matrix_bridge_appservice_discord_container_image_registry_prefix }}matrix-org/matrix-appservice-discord:{{ matrix_bridge_appservice_discord_version }}" matrix_appservice_discord_container_image: "{{ matrix_appservice_discord_container_image_registry_prefix }}matrix-org/matrix-appservice-discord:{{ matrix_appservice_discord_version }}"
matrix_bridge_appservice_discord_container_image_registry_prefix: "{{ matrix_bridge_appservice_discord_container_image_registry_prefix_upstream }}" matrix_appservice_discord_container_image_registry_prefix: "{{ 'localhost/' if matrix_appservice_discord_container_image_self_build else matrix_appservice_discord_container_image_registry_prefix_upstream }}"
matrix_bridge_appservice_discord_container_image_registry_prefix_upstream: "{{ matrix_bridge_appservice_discord_container_image_registry_prefix_upstream_default }}" matrix_appservice_discord_container_image_registry_prefix_upstream: "{{ matrix_appservice_discord_container_image_registry_prefix_upstream_default }}"
matrix_bridge_appservice_discord_container_image_registry_prefix_upstream_default: "ghcr.io/" matrix_appservice_discord_container_image_registry_prefix_upstream_default: "ghcr.io/"
matrix_bridge_appservice_discord_base_path: "{{ matrix_base_data_path }}/appservice-discord" matrix_appservice_discord_base_path: "{{ matrix_base_data_path }}/appservice-discord"
matrix_bridge_appservice_discord_config_path: "{{ matrix_base_data_path }}/appservice-discord/config" matrix_appservice_discord_config_path: "{{ matrix_base_data_path }}/appservice-discord/config"
matrix_bridge_appservice_discord_data_path: "{{ matrix_base_data_path }}/appservice-discord/data" matrix_appservice_discord_data_path: "{{ matrix_base_data_path }}/appservice-discord/data"
# Get your own keys at https://discordapp.com/developers/applications/me/create # Get your own keys at https://discordapp.com/developers/applications/me/create
matrix_bridge_appservice_discord_client_id: '' matrix_appservice_discord_client_id: ''
matrix_bridge_appservice_discord_bot_token: '' matrix_appservice_discord_bot_token: ''
matrix_bridge_appservice_discord_appservice_token: '' matrix_appservice_discord_appservice_token: ''
matrix_bridge_appservice_discord_homeserver_token: '' matrix_appservice_discord_homeserver_token: ''
matrix_bridge_appservice_discord_homeserver_domain: "{{ matrix_domain }}" matrix_appservice_discord_homeserver_domain: "{{ matrix_domain }}"
# Controls whether the matrix-appservice-discord container exposes its HTTP port (tcp/9005 in the container). # Controls whether the matrix-appservice-discord container exposes its HTTP port (tcp/9005 in the container).
# #
# Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:9005"), or empty string to not expose. # Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:9005"), or empty string to not expose.
matrix_bridge_appservice_discord_container_http_host_bind_port: '' matrix_appservice_discord_container_http_host_bind_port: ''
matrix_bridge_appservice_discord_container_network: "" matrix_appservice_discord_container_network: ""
matrix_bridge_appservice_discord_container_additional_networks: "{{ matrix_bridge_appservice_discord_container_additional_networks_auto + matrix_bridge_appservice_discord_container_additional_networks_custom }}" matrix_appservice_discord_container_additional_networks: "{{ matrix_appservice_discord_container_additional_networks_auto + matrix_appservice_discord_container_additional_networks_custom }}"
matrix_bridge_appservice_discord_container_additional_networks_auto: [] matrix_appservice_discord_container_additional_networks_auto: []
matrix_bridge_appservice_discord_container_additional_networks_custom: [] matrix_appservice_discord_container_additional_networks_custom: []
# A list of extra arguments to pass to the container # A list of extra arguments to pass to the container
matrix_bridge_appservice_discord_container_extra_arguments: [] matrix_appservice_discord_container_extra_arguments: []
# List of systemd services that matrix-appservice-discord.service depends on. # List of systemd services that matrix-appservice-discord.service depends on.
matrix_bridge_appservice_discord_systemd_required_services_list: "{{ matrix_bridge_appservice_discord_systemd_required_services_list_default + matrix_bridge_appservice_discord_systemd_required_services_list_auto + matrix_bridge_appservice_discord_systemd_required_services_list_custom }}" matrix_appservice_discord_systemd_required_services_list: "{{ matrix_appservice_discord_systemd_required_services_list_default + matrix_appservice_discord_systemd_required_services_list_auto + matrix_appservice_discord_systemd_required_services_list_custom }}"
matrix_bridge_appservice_discord_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" matrix_appservice_discord_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_bridge_appservice_discord_systemd_required_services_list_auto: [] matrix_appservice_discord_systemd_required_services_list_auto: []
matrix_bridge_appservice_discord_systemd_required_services_list_custom: [] matrix_appservice_discord_systemd_required_services_list_custom: []
# List of systemd services that matrix-appservice-discord.service wants # List of systemd services that matrix-appservice-discord.service wants
matrix_bridge_appservice_discord_systemd_wanted_services_list: [] matrix_appservice_discord_systemd_wanted_services_list: []
matrix_bridge_appservice_discord_appservice_url: 'http://matrix-appservice-discord:9005' matrix_appservice_discord_appservice_url: 'http://matrix-appservice-discord:9005'
matrix_bridge_appservice_discord_bridge_domain: "{{ matrix_domain }}" matrix_appservice_discord_bridge_domain: "{{ matrix_domain }}"
# As of right now, the homeserver URL must be a public URL. See below. # As of right now, the homeserver URL must be a public URL. See below.
matrix_bridge_appservice_discord_bridge_homeserverUrl: "{{ matrix_homeserver_url }}" # noqa var-naming matrix_appservice_discord_bridge_homeserverUrl: "{{ matrix_homeserver_url }}" # noqa var-naming
matrix_bridge_appservice_discord_bridge_disablePresence: false # noqa var-naming matrix_appservice_discord_bridge_disablePresence: false # noqa var-naming
matrix_bridge_appservice_discord_bridge_enableSelfServiceBridging: false # noqa var-naming matrix_appservice_discord_bridge_enableSelfServiceBridging: false # noqa var-naming
matrix_bridge_appservice_discord_bridge_disablePortalBridging: false # noqa var-naming matrix_appservice_discord_bridge_disablePortalBridging: false # noqa var-naming
# Database-related configuration fields. # Database-related configuration fields.
# #
# To use SQLite, stick to these defaults. # To use SQLite, stick to these defaults.
# #
# To use Postgres: # To use Postgres:
# - change the engine (`matrix_bridge_appservice_discord_database_engine: 'postgres'`) # - change the engine (`matrix_appservice_discord_database_engine: 'postgres'`)
# - adjust your database credentials via the `matrix_bridge_appservice_discord_database_*` variables # - adjust your database credentials via the `matrix_appservice_discord_database_*` variables
matrix_bridge_appservice_discord_database_engine: 'sqlite' matrix_appservice_discord_database_engine: 'sqlite'
matrix_bridge_appservice_discord_sqlite_database_path_local: "{{ matrix_bridge_appservice_discord_data_path }}/discord.db" matrix_appservice_discord_sqlite_database_path_local: "{{ matrix_appservice_discord_data_path }}/discord.db"
matrix_bridge_appservice_discord_sqlite_database_path_in_container: "/data/discord.db" matrix_appservice_discord_sqlite_database_path_in_container: "/data/discord.db"
matrix_bridge_appservice_discord_database_username: 'matrix_appservice_discord' matrix_appservice_discord_database_username: 'matrix_appservice_discord'
matrix_bridge_appservice_discord_database_password: 'some-password' matrix_appservice_discord_database_password: 'some-password'
matrix_bridge_appservice_discord_database_hostname: '' matrix_appservice_discord_database_hostname: ''
matrix_bridge_appservice_discord_database_port: 5432 matrix_appservice_discord_database_port: 5432
matrix_bridge_appservice_discord_database_name: 'matrix_appservice_discord' matrix_appservice_discord_database_name: 'matrix_appservice_discord'
# These 2 variables are what actually ends up in the bridge configuration. # These 2 variables are what actually ends up in the bridge configuration.
# It's best if you don't change them directly, but rather redefine the sub-variables that constitute them. # It's best if you don't change them directly, but rather redefine the sub-variables that constitute them.
matrix_bridge_appservice_discord_database_filename: "{{ matrix_bridge_appservice_discord_sqlite_database_path_in_container }}" matrix_appservice_discord_database_filename: "{{ matrix_appservice_discord_sqlite_database_path_in_container }}"
matrix_bridge_appservice_discord_database_connString: 'postgresql://{{ matrix_bridge_appservice_discord_database_username }}:{{ matrix_bridge_appservice_discord_database_password }}@{{ matrix_bridge_appservice_discord_database_hostname }}:{{ matrix_bridge_appservice_discord_database_port }}/{{ matrix_bridge_appservice_discord_database_name }}' # noqa var-naming matrix_appservice_discord_database_connString: 'postgresql://{{ matrix_appservice_discord_database_username }}:{{ matrix_appservice_discord_database_password }}@{{ matrix_appservice_discord_database_hostname }}:{{ matrix_appservice_discord_database_port }}/{{ matrix_appservice_discord_database_name }}' # noqa var-naming
# Tells whether the bot should make use of "Privileged Gateway Intents". # Tells whether the bot should make use of "Privileged Gateway Intents".
@@ -99,44 +100,44 @@ matrix_bridge_appservice_discord_database_connString: 'postgresql://{{ matrix_br
# by triggering all Intent checkboxes on a page like this: `https://discord.com/developers/applications/694448564151123988/bot` # by triggering all Intent checkboxes on a page like this: `https://discord.com/developers/applications/694448564151123988/bot`
# #
# Learn more: https://gist.github.com/advaith1/e69bcc1cdd6d0087322734451f15aa2f # Learn more: https://gist.github.com/advaith1/e69bcc1cdd6d0087322734451f15aa2f
matrix_bridge_appservice_discord_auth_usePrivilegedIntents: false # noqa var-naming matrix_appservice_discord_auth_usePrivilegedIntents: false # noqa var-naming
matrix_bridge_appservice_discord_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" matrix_appservice_discord_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}"
matrix_bridge_appservice_discord_configuration_extension_yaml: | matrix_appservice_discord_configuration_extension_yaml: |
# Your custom YAML configuration goes here. # Your custom YAML configuration goes here.
# This configuration extends the default starting configuration (`matrix_bridge_appservice_discord_configuration_yaml`). # This configuration extends the default starting configuration (`matrix_appservice_discord_configuration_yaml`).
# #
# You can override individual variables from the default configuration, or introduce new ones. # You can override individual variables from the default configuration, or introduce new ones.
# #
# If you need something more special, you can take full control by # If you need something more special, you can take full control by
# completely redefining `matrix_bridge_appservice_discord_configuration_yaml`. # completely redefining `matrix_appservice_discord_configuration_yaml`.
matrix_bridge_appservice_discord_configuration_extension: "{{ matrix_bridge_appservice_discord_configuration_extension_yaml | from_yaml if matrix_bridge_appservice_discord_configuration_extension_yaml | from_yaml is mapping else {} }}" matrix_appservice_discord_configuration_extension: "{{ matrix_appservice_discord_configuration_extension_yaml | from_yaml if matrix_appservice_discord_configuration_extension_yaml | from_yaml is mapping else {} }}"
matrix_bridge_appservice_discord_configuration: "{{ matrix_bridge_appservice_discord_configuration_yaml | from_yaml | combine(matrix_bridge_appservice_discord_configuration_extension, recursive=True) }}" matrix_appservice_discord_configuration: "{{ matrix_appservice_discord_configuration_yaml | from_yaml | combine(matrix_appservice_discord_configuration_extension, recursive=True) }}"
matrix_bridge_appservice_discord_registration_yaml: | matrix_appservice_discord_registration_yaml: |
#jinja2: lstrip_blocks: True #jinja2: lstrip_blocks: True
id: appservice-discord id: appservice-discord
as_token: "{{ matrix_bridge_appservice_discord_appservice_token }}" as_token: "{{ matrix_appservice_discord_appservice_token }}"
hs_token: "{{ matrix_bridge_appservice_discord_homeserver_token }}" hs_token: "{{ matrix_appservice_discord_homeserver_token }}"
namespaces: namespaces:
users: users:
- exclusive: true - exclusive: true
regex: '@_discord_.*:{{ matrix_bridge_appservice_discord_homeserver_domain | regex_escape }}' regex: '@_discord_.*:{{ matrix_appservice_discord_homeserver_domain | regex_escape }}'
aliases: aliases:
- exclusive: true - exclusive: true
regex: '#_discord_.*:{{ matrix_bridge_appservice_discord_homeserver_domain | regex_escape }}' regex: '#_discord_.*:{{ matrix_appservice_discord_homeserver_domain | regex_escape }}'
url: {{ matrix_bridge_appservice_discord_appservice_url }} url: {{ matrix_appservice_discord_appservice_url }}
sender_localpart: _discord_bot sender_localpart: _discord_bot
rate_limited: false rate_limited: false
protocols: protocols:
- discord - discord
matrix_bridge_appservice_discord_registration: "{{ matrix_bridge_appservice_discord_registration_yaml | from_yaml }}" matrix_appservice_discord_registration: "{{ matrix_appservice_discord_registration_yaml | from_yaml }}"
# matrix_bridge_appservice_discord_restart_necessary controls whether the service # matrix_appservice_discord_restart_necessary controls whether the service
# will be restarted (when true) or merely started (when false) by the # will be restarted (when true) or merely started (when false) by the
# systemd service manager role (when conditional restart is enabled). # systemd service manager role (when conditional restart is enabled).
# #
@@ -144,4 +145,4 @@ matrix_bridge_appservice_discord_registration: "{{ matrix_bridge_appservice_disc
# any configuration files, the systemd service file, or the container image changed. # any configuration files, the systemd service file, or the container image changed.
# The default of `false` means "no restart needed" — appropriate when the role's # The default of `false` means "no restart needed" — appropriate when the role's
# installation tasks haven't run (e.g., due to --tags skipping them). # installation tasks haven't run (e.g., due to --tags skipping them).
matrix_bridge_appservice_discord_restart_necessary: false matrix_appservice_discord_restart_necessary: false
@@ -12,15 +12,15 @@
- install-all - install-all
- install-appservice-discord - install-appservice-discord
block: block:
- when: matrix_bridge_appservice_discord_enabled | bool - when: matrix_appservice_discord_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml" ansible.builtin.include_tasks: "{{ role_path }}/tasks/validate_config.yml"
- when: matrix_bridge_appservice_discord_enabled | bool - when: matrix_appservice_discord_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml" ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_install.yml"
- tags: - tags:
- setup-all - setup-all
- setup-appservice-discord - setup-appservice-discord
block: block:
- when: not matrix_bridge_appservice_discord_enabled | bool - when: not matrix_appservice_discord_enabled | bool
ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml" ansible.builtin.include_tasks: "{{ role_path }}/tasks/setup_uninstall.yml"
@@ -14,40 +14,40 @@
--- ---
- ansible.builtin.set_fact: - ansible.builtin.set_fact:
matrix_bridge_appservice_discord_migration_requires_restart: false matrix_appservice_discord_migration_requires_restart: false
- when: "matrix_bridge_appservice_discord_database_engine == 'postgres'" - when: "matrix_appservice_discord_database_engine == 'postgres'"
block: block:
- name: Check if an SQLite database already exists - name: Check if an SQLite database already exists
ansible.builtin.stat: ansible.builtin.stat:
path: "{{ matrix_bridge_appservice_discord_sqlite_database_path_local }}" path: "{{ matrix_appservice_discord_sqlite_database_path_local }}"
register: matrix_bridge_appservice_discord_sqlite_database_path_local_stat_result register: matrix_appservice_discord_sqlite_database_path_local_stat_result
- when: "matrix_bridge_appservice_discord_sqlite_database_path_local_stat_result.stat.exists | bool" - when: "matrix_appservice_discord_sqlite_database_path_local_stat_result.stat.exists | bool"
block: block:
- ansible.builtin.include_role: - ansible.builtin.include_role:
name: galaxy/postgres name: galaxy/postgres
tasks_from: migrate_db_to_postgres tasks_from: migrate_db_to_postgres
vars: vars:
postgres_db_migration_request: postgres_db_migration_request:
src: "{{ matrix_bridge_appservice_discord_sqlite_database_path_local }}" src: "{{ matrix_appservice_discord_sqlite_database_path_local }}"
dst: "{{ matrix_bridge_appservice_discord_database_connString }}" dst: "{{ matrix_appservice_discord_database_connString }}"
caller: "{{ role_path | basename }}" caller: "{{ role_path | basename }}"
engine_variable_name: 'matrix_bridge_appservice_discord_database_engine' engine_variable_name: 'matrix_appservice_discord_database_engine'
engine_old: 'sqlite' engine_old: 'sqlite'
systemd_services_to_stop: ['matrix-appservice-discord.service'] systemd_services_to_stop: ['matrix-appservice-discord.service']
- ansible.builtin.set_fact: - ansible.builtin.set_fact:
matrix_bridge_appservice_discord_migration_requires_restart: true matrix_appservice_discord_migration_requires_restart: true
- name: Ensure Appservice Discord image is pulled - name: Ensure Appservice Discord image is pulled
community.docker.docker_image_pull: community.docker.docker_image_pull:
name: "{{ matrix_bridge_appservice_discord_container_image }}" name: "{{ matrix_appservice_discord_container_image }}"
pull: always pull: always
register: matrix_bridge_appservice_discord_container_image_pull_result register: matrix_appservice_discord_container_image_pull_result
retries: "{{ devture_playbook_help_container_retries_count }}" retries: "{{ devture_playbook_help_container_retries_count }}"
delay: "{{ devture_playbook_help_container_retries_delay }}" delay: "{{ devture_playbook_help_container_retries_delay }}"
until: matrix_bridge_appservice_discord_container_image_pull_result is not failed until: matrix_appservice_discord_container_image_pull_result is not failed
- name: Ensure AppService Discord paths exist - name: Ensure AppService Discord paths exist
ansible.builtin.file: ansible.builtin.file:
@@ -57,14 +57,14 @@
owner: "{{ matrix_user_name }}" owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}" group: "{{ matrix_group_name }}"
with_items: with_items:
- "{{ matrix_bridge_appservice_discord_base_path }}" - "{{ matrix_appservice_discord_base_path }}"
- "{{ matrix_bridge_appservice_discord_config_path }}" - "{{ matrix_appservice_discord_config_path }}"
- "{{ matrix_bridge_appservice_discord_data_path }}" - "{{ matrix_appservice_discord_data_path }}"
- name: Check if an old database file already exists - name: Check if an old database file already exists
ansible.builtin.stat: ansible.builtin.stat:
path: "{{ matrix_bridge_appservice_discord_base_path }}/discord.db" path: "{{ matrix_appservice_discord_base_path }}/discord.db"
register: matrix_bridge_appservice_discord_stat_db register: matrix_appservice_discord_stat_db
- name: (Data relocation) Ensure matrix-appservice-discord.service is stopped - name: (Data relocation) Ensure matrix-appservice-discord.service is stopped
ansible.builtin.service: ansible.builtin.service:
@@ -73,55 +73,55 @@
enabled: false enabled: false
daemon_reload: true daemon_reload: true
failed_when: false failed_when: false
when: "matrix_bridge_appservice_discord_stat_db.stat.exists" when: "matrix_appservice_discord_stat_db.stat.exists"
- name: (Data relocation) Move AppService Discord discord.db file to ./data directory - name: (Data relocation) Move AppService Discord discord.db file to ./data directory
ansible.builtin.command: ansible.builtin.command:
cmd: "mv {{ matrix_bridge_appservice_discord_base_path }}/{{ item }} {{ matrix_bridge_appservice_discord_data_path }}/{{ item }}" cmd: "mv {{ matrix_appservice_discord_base_path }}/{{ item }} {{ matrix_appservice_discord_data_path }}/{{ item }}"
creates: "{{ matrix_bridge_appservice_discord_data_path }}/{{ item }}" creates: "{{ matrix_appservice_discord_data_path }}/{{ item }}"
removes: "{{ matrix_bridge_appservice_discord_base_path }}/{{ item }}" removes: "{{ matrix_appservice_discord_base_path }}/{{ item }}"
with_items: with_items:
- discord.db - discord.db
- user-store.db - user-store.db
- room-store.db - room-store.db
when: "matrix_bridge_appservice_discord_stat_db.stat.exists" when: "matrix_appservice_discord_stat_db.stat.exists"
- name: Ensure AppService Discord config.yaml installed - name: Ensure AppService Discord config.yaml installed
ansible.builtin.copy: ansible.builtin.copy:
content: "{{ matrix_bridge_appservice_discord_configuration | to_nice_yaml(indent=2, width=999999) }}" content: "{{ matrix_appservice_discord_configuration | to_nice_yaml(indent=2, width=999999) }}"
dest: "{{ matrix_bridge_appservice_discord_config_path }}/config.yaml" dest: "{{ matrix_appservice_discord_config_path }}/config.yaml"
mode: '0644' mode: '0644'
owner: "{{ matrix_user_name }}" owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}" group: "{{ matrix_group_name }}"
register: matrix_bridge_appservice_discord_config_result register: matrix_appservice_discord_config_result
- name: Ensure AppService Discord registration.yaml installed - name: Ensure AppService Discord registration.yaml installed
ansible.builtin.copy: ansible.builtin.copy:
content: "{{ matrix_bridge_appservice_discord_registration | to_nice_yaml(indent=2, width=999999) }}" content: "{{ matrix_appservice_discord_registration | to_nice_yaml(indent=2, width=999999) }}"
dest: "{{ matrix_bridge_appservice_discord_config_path }}/registration.yaml" dest: "{{ matrix_appservice_discord_config_path }}/registration.yaml"
mode: '0644' mode: '0644'
owner: "{{ matrix_user_name }}" owner: "{{ matrix_user_name }}"
group: "{{ matrix_group_name }}" group: "{{ matrix_group_name }}"
register: matrix_bridge_appservice_discord_registration_result register: matrix_appservice_discord_registration_result
# If `matrix_bridge_appservice_discord_client_id` hasn't changed, the same invite link would be generated. # If `matrix_appservice_discord_client_id` hasn't changed, the same invite link would be generated.
# We intentionally suppress Ansible changes. # We intentionally suppress Ansible changes.
- name: Generate AppService Discord invite link - name: Generate AppService Discord invite link
ansible.builtin.shell: >- ansible.builtin.shell: >-
{{ devture_systemd_docker_base_host_command_docker }} run --rm --name matrix-appservice-discord-link-gen {{ devture_systemd_docker_base_host_command_docker }} run --rm --name matrix-appservice-discord-link-gen
--user={{ matrix_user_uid }}:{{ matrix_user_gid }} --user={{ matrix_user_uid }}:{{ matrix_user_gid }}
--cap-drop=ALL --cap-drop=ALL
--mount type=bind,src={{ matrix_bridge_appservice_discord_config_path }},dst=/cfg --mount type=bind,src={{ matrix_appservice_discord_config_path }},dst=/cfg
-w /cfg -w /cfg
{{ matrix_bridge_appservice_discord_container_image }} {{ matrix_appservice_discord_container_image }}
/bin/sh -c "node /build/tools/addbot.js > /cfg/invite_link" /bin/sh -c "node /build/tools/addbot.js > /cfg/invite_link"
changed_when: false changed_when: false
- name: Ensure matrix-appservice-discord container network is created - name: Ensure matrix-appservice-discord container network is created
when: matrix_bridge_appservice_discord_container_network != 'host' when: matrix_appservice_discord_container_network != 'host'
community.general.docker_network: community.general.docker_network:
enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}" enable_ipv6: "{{ devture_systemd_docker_base_ipv6_enabled }}"
name: "{{ matrix_bridge_appservice_discord_container_network }}" name: "{{ matrix_appservice_discord_container_network }}"
driver: bridge driver: bridge
driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}" driver_options: "{{ devture_systemd_docker_base_container_networks_driver_options }}"
@@ -130,17 +130,17 @@
src: "{{ role_path }}/templates/systemd/matrix-appservice-discord.service.j2" src: "{{ role_path }}/templates/systemd/matrix-appservice-discord.service.j2"
dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-discord.service" dest: "{{ devture_systemd_docker_base_systemd_path }}/matrix-appservice-discord.service"
mode: '0644' mode: '0644'
register: matrix_bridge_appservice_discord_systemd_service_result register: matrix_appservice_discord_systemd_service_result
- name: Determine whether matrix-appservice-discord needs a restart - name: Determine whether matrix-appservice-discord needs a restart
ansible.builtin.set_fact: ansible.builtin.set_fact:
matrix_bridge_appservice_discord_restart_necessary: >- matrix_appservice_discord_restart_necessary: >-
{{ {{
matrix_bridge_appservice_discord_migration_requires_restart | default(false) matrix_appservice_discord_migration_requires_restart | default(false)
or matrix_bridge_appservice_discord_config_result.changed | default(false) or matrix_appservice_discord_config_result.changed | default(false)
or matrix_bridge_appservice_discord_registration_result.changed | default(false) or matrix_appservice_discord_registration_result.changed | default(false)
or matrix_bridge_appservice_discord_systemd_service_result.changed | default(false) or matrix_appservice_discord_systemd_service_result.changed | default(false)
or matrix_bridge_appservice_discord_container_image_pull_result.changed | default(false) or matrix_appservice_discord_container_image_pull_result.changed | default(false)
}} }}
- name: Ensure matrix-appservice-discord.service restarted, if necessary - name: Ensure matrix-appservice-discord.service restarted, if necessary
@@ -148,4 +148,4 @@
name: "matrix-appservice-discord.service" name: "matrix-appservice-discord.service"
state: restarted state: restarted
daemon_reload: true daemon_reload: true
when: "matrix_bridge_appservice_discord_migration_requires_restart | bool" when: "matrix_appservice_discord_migration_requires_restart | bool"

Some files were not shown because too many files have changed in this diff Show More